我对泛型有以下问题。我有以下几点:Java泛型:在方法级别和接口级别定义的通用参数
了InterfaceA为:
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;
}
}
它的工作。该方法被认为是一个有效的实现。
有谁知道为什么会发生这种情况?