我有以下与泛型有关的问题。我有以下内容:
接口A为:
public interface InterfaceA {
public <T extends DTOInterface> Object methodName (T dto) {}
}
DTOInterface 只是一个空接口。
那么我的实现将是:
public class ImplementationA implements InterfaceA {
public Object methodName(DTOImplementation dto) {
return null;
}
}
DTOImplementation 只是一个实现 DTOInterface 的类。
这是失败的,因为 ImplementationA 中的方法未被识别为 InterfaceA 中方法的有效实现。
但是,如果我在接口级别定义参数,即
public interface InterfaceA **<T extends DTOInterface>** {
public Object methodName (T dto) {}
}
然后将实现定义为:
public class ImplementationA implements **InterfaceA<DTOImplementation>** {
public Object methodName(DTOImplementation dto) {
return null;
}
}
它确实有效。该方法被认为是有效的实现。
有谁知道为什么会这样?