![]() |
1
1
如果我正确地阅读了您的问题,您希望编译时安全
返回
如果您使
假设我们有三个接口
现在上课
现在让
根据这些定义,
此方法只能返回类型参数化
有效,但
不是。
实现
你也可以回来
最后,实施
据我所见,编译器不允许
阿尔索
不会像“产品”那样工作
缺点是伪枚举构造和
|
![]() |
2
2
如@ghostcat建议的那样,可以分派枚举值并返回匹配的实例。
你也可以
反转查找
如此
每个枚举值都提供适当的实例
属于
变体1 :每个枚举值的单个实例
变体2 :工厂,创建新实例:
用途:
|
![]() |
3
0
假设我们在类X中,您有一个局部泛型参数,可以考虑:
但这样做并没有任何好处。这些演员阵容对主叫方来说并不重要。 因为编译器在这里不能为您做任何事情。你可以写
但是你也可以写
同样的
如果您想要获得“编译时安全性”的好处,那么您必须以某种方式将参数类型“连接”到结果类型。 |