public abstract <T extends AnotherClass> void getAndParse(Args... args);
这是一种类型参数为T且由界定的方法
AnotherClass,这意味着的每个子类型
AnotherClass都可以用作类型参数。
public <SpecificClass> void getAndParse(Args... args)
这是一种方法,其类型参数名为
SpecificClass,以限制
Object(这意味着每种类型都可以作为类型参数)。你真的想要这个吗?
是在内部使用type参数
Args吗?我认为问题就在那里。
的含义
public abstract <T extends AnotherClass> void getAndParse(T... args);
是方法的 调用者
可以决定他要使用哪种类型的参数来调用方法,只要这是的子类型
AnotherClass。这意味着实际上可以使用任何类型的对象调用该方法
AnotherClass。
由于调用者可以决定类型参数,因此您不能在子类中将参数类型缩小到
SpecificClass-这不是方法的实现,而是同名的另一个方法(重载)。
也许您想要这样的东西:
public abstract class GetAndParse<T extends AnotherClass> { public SomeClass var; public abstract void getAndParse(T... args);}public class Implementor extends GetAndParse<SpecificClass> { // some field declarations // some method declarations @Override public void getAndParse(SpecificClass... args) { // method body making use of args }}
现在,该
getAndParse方法实现了父类的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)