Tag: generics方法

Javagenerics方法inheritance和覆盖规则

我有一个具有generics方法的抽象类,我想通过将特定类型替换为generics参数来覆盖generics方法。 所以在伪代码中我有以下内容: public abstract class GetAndParse { public SomeClass var; public abstract void getAndParse(T… args); } public class Implementor extends GetAndParse { // some field declarations // some method declarations @Override public void getAndParse(SpecificClass… args) { // method body making use of args } } 但由于某种原因,我不允许这样做? 我是在做某种语法错误还是这种inheritance和覆盖不允许? 特别是我收到关于@Override的错误,因为eclipse IDE一直在提醒我实现getAndParse 。 以下是我希望上述代码的工作方式。 我的代码中的其他地方有一个方法,它需要实现GetAndParse的对象实例,这特别意味着它们有一个我可以使用的getAndParse方法。 当我在该实例上调用getAndParse时,编译器会检查我是否以正确的方式使用了T特定实例,因此特别是T应该扩展AnotherClass并且它应该是SpecificClass 。

generics类中的Javagenerics方法

如果在Java中创建generics类(该类具有generics类型参数),您可以使用generics方法(该方法采用generics类型参数)吗? 请考虑以下示例: public class MyClass { public K doSomething(K k){ return k; } } public class MyGenericClass { public K doSomething(K k){ return k; } public List makeSingletonList(K k){ return Collections.singletonList(k); } } 正如您对通用方法所期望的那样,我可以使用任何对象在MyClass实例上调用doSomething(K) : MyClass clazz = new MyClass(); String string = clazz.doSomething(“String”); Integer integer = clazz.doSomething(1); 但是,如果我尝试使用MyGenericClass实例而不指定generics类型,我调用doSomething(K)将返回一个Object ,无论传入的是什么K : MyGenericClass untyped = new […]