1
8
我认为你是对的,它只能返回
稍后,通过专门化泛型构造函数并传入您感兴趣的枚举类来调用它:
(很明显,这是一个人为的例子,在现实生活中,您应该调用foo.values(),但您得到了这个想法。) |
2
3
Java做Enums的整个步骤是,它们是类型化的——所以你不会返回枚举(这是双加不好的),而不是返回你定义的实际类型(比如“TAY”),它就像一个类。诉讼有4个“列举”的实例。 如果你期待着一件“西装”,那么返回7级的“军衔”会有什么好处呢?它会破坏一切! 另外,如果传递了“枚举”或一些泛型值,则无法对其调用方法。关于typesafe枚举最酷的一点是,您只需获得一个“suit”并调用“suit.get color()”,就可以完全期望获得该套装的颜色。您还可以拥有Rankshigherthan(西服),可以满足:
或者更重要的是:
(假设他们都被传了进来,而你不知道他们是什么) 类型安全是非常惊人的(即使一开始感觉有点不舒服),拥抱它。 |
3
3
所有枚举都实现接口枚举,因此您当然可以用这种方式编写返回枚举的方法。但此方法将返回单个枚举值。无法返回包含整个枚举的泛型值(除了返回类和进行反射之外)。但是,您可以返回所有枚举值,这或多或少是您想要的。
这种方法的一个好处是,您可以返回或多或少的值,例如:
更安全的类型的更好方法是使用感兴趣的枚举 实现一个公共接口,例如
您可以向接口添加其他方法以提供更多功能。 |
4
2
你想完成什么?这是返回
但是,我猜这不是你想要的? |
5
1
是的,这绝对是可能的。
如果你的问题是关于 宣告 Enums,您可以声明:
|
6
1
不完全确定您的目标是什么,但是如果您想要返回一个泛型方法(即一个将被重写的方法),那么您可能会有如下内容:
不完全确定在那里你会得到什么,尽管如果你谈论的是不同的枚举集和它们的元素,这是有益的。 如果您谈论的是枚举类(即Percursor-to-Iterator),据我所知,它还没有被泛型化,所以我不确定泛型在这里会有什么帮助。 |
7
1
可以通过枚举的名称引用它的值,例如suit.spades。 您可以使用values()方法迭代所有值,并选择其中一个值。 |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
milczi · Swift通用无强制展开向下投射 6 年前 |
bugs · Typescript-泛型类型扩展自身 6 年前 |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |