![]() |
1
0
您可以实现这一点,但您将失去编译器提供给您的优势,即在编译时检查类型是否正确。
使用
您可以毫无问题地使用它:
但是,另一方面,您也可以使用它(编译器不会显示任何错误)
相反,您将收到类型为的运行时异常
如果你想要什么 可能 不太容易出错(在编译时而不是运行时显示错误),您可以定义在类中处理/知道/提供的所有函数(枚举不处理泛型)。
(
您可以根据需要重构,也许可以添加
然后稍微改变一下
您可以创建方法
这将起作用:
这将显示一个编译时错误,非常容易检测和修复:
最后,您可以将
|
![]() |
2
0
遗憾的是,没有办法。编译器预期该类型在运行时丢失,这将使将其分配给除
或者,您可以返回
另一种选择是使用提供的泛型调用该方法。不幸的是,我不确定这是否会导致其他编译错误。尝试以下操作
提供
|
![]() |
3
0
如下所示修改您的枚举。
您必须在每个ReturnType中实现,以从字符串返回生成的T值。 然后可以使用ReturnType枚举,如下所示。
请善意地忽略编译器错误并修复它。我想给你一个想法,以其他方式实现。 |
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
milczi · Swift通用无强制展开向下投射 6 年前 |
![]() |
bugs · Typescript-泛型类型扩展自身 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
![]() |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |