【发布时间】:2011-06-28 05:57:43
【问题描述】:
我有一个界面
public interface Doable<T,U> {
public U doStuff(T t);
}
我有一个实现Doable<T,U>的抽象类
public abstract class AbstractDoable<T,U> implements Doable<T, U> {
private SomeClass someClass;
}
现在我需要实现上面的类,但是我需要为T和U使用不同的类。
请建议我应该如何进行此操作,因为我需要使用不同的T 和U 实现AbstractDoable 的多个实现。例如:
ConvertDoable<String,Integer> extends AbstractDoable
或
ConvertDoable<A,B> extends AbstractDoable
【问题讨论】:
-
我可以有这样的
public class ConvertDoableextends AbstractDoable {} -
@Gansu:不,你不能。 String 和 Integer 都是
final类 -
@Gansu:是的,应该可以。
-
@Bohemian:这并不能阻止您使用
extends表示法声明泛型类型 - 在 final 类的情况下它只是有点没有意义。您可能会收到编译器警告,但如果这是一个错误,我会感到惊讶。也就是说,我自己没有尝试过,所以我很高兴被证明是错误的。 -
@Bohemian, @Cameron ...我不会使用任何最终类,这只是一个例子。请考虑
Class1和Class2而不是String和Integer。但是我知道最终类不能在这里使用...感谢您将其引入
标签: java generics inheritance implementation extends