我不敢相信如果没有将类输入到冗余的2类类中,我就无法捕获P:
public class MyClass> { T getList(/**/){} P getRandomElement(){ /**/ } }
我是否真的需要定义和实例化MyClass MyClass
,因此无法推断它?
编辑:我的意思是我看到冗余必须定义 >MyClass
因为那时我需要实例化它总是作为MyClass
,并随身携带字符串.如果语言允许这样的话会很好
MyClass
或类似的.这样,在执行时和MyClass
返回ArrayList
执行时会很好地返回.getList()
String
getRandomElement()
如果你真的必须有确切的List
返回类型getList
,那么你需要type参数T
以及P
.
public class MyClass> {
这样,您可以使用MyClass
其getList
方法返回的方法和返回a ArrayList
的getRandomElement
方法String
.
但是,通常不需要知道确切的类型List
.通常,如果你有一个List
,那么对于这个类的用户来说这List
是真的是什么并不重要.在这种情况下,你不需要类型参数T
,只P
.您可以将课程更改为:
public class MyClass{ List
getList(/**/){} P getRandomElement(){ /**/ } }
然后你就可以有MyClass
其getList
方法返回一个List
与getRandomElement
返回的方法String
.