是否可以将泛型添加到Java中非泛型接口的实现中?
如果接口定义不使用泛型,是否可以泛化接口的实现?我无法控制需要实现的接口,但希望禁止对我的实现发出“未检查”警告。有些问题可以解决,有些问题无法解决 例如,如果接口如下所示:是否可以将泛型添加到Java中非泛型接口的实现中?,java,generics,java-6,Java,Generics,Java 6,如果接口定义不使用泛型,是否可以泛化接口的实现?我无法控制需要实现的接口,但希望禁止对我的实现发出“未检查”警告。有些问题可以解决,有些问题无法解决 例如,如果接口如下所示: interface OldInterface { List someMethod(); } 当然,你可以通过 class NewClass implements OldInterface { public List<String> someMethod() { // DOES
interface OldInterface {
List someMethod();
}
当然,你可以通过
class NewClass implements OldInterface {
public List<String> someMethod() { // DOES COMPILE.
...
}
}
那么在编程方面你就无能为力了
class NewClass implements OldInterface {
public void someMethod(ArrayList<String> list) { // DOES NOT COMPILE.
...
}
}
class NewClass实现了OldInterface{
public void someMethod(ArrayList list){//未编译。
...
}
}
这就是我们所说的。幸运的是,至少在Eclipse中,通过选中“忽略不可避免的泛型类型问题”,可以抑制这些警告
Windows>首选项>Java>编译器>错误/警告有些问题可以解决,有些问题无法解决 例如,如果接口如下所示:
interface OldInterface {
List someMethod();
}
当然,你可以通过
class NewClass implements OldInterface {
public List<String> someMethod() { // DOES COMPILE.
...
}
}
那么在编程方面你就无能为力了
class NewClass implements OldInterface {
public void someMethod(ArrayList<String> list) { // DOES NOT COMPILE.
...
}
}
class NewClass实现了OldInterface{
public void someMethod(ArrayList list){//未编译。
...
}
}
这就是我们所说的。幸运的是,至少在Eclipse中,通过选中“忽略不可避免的泛型类型问题”,可以抑制这些警告
Windows>Preferences>Java>Compiler>Errors/Warnings重写时始终可以限制返回值,这称为共变量返回类型。添加泛型元素就是这样
否则,如前所述,不允许限制参数。重写时,可以对参数使用更广泛的类型,称为反向变量。重写时始终可以限制返回值,称为协变量返回类型。添加泛型元素就是这样 否则,如前所述,不允许限制参数。重写时,可以对参数使用更广泛的类型,称为反向变量