cha*_*ean 6 java generics subclassing
是否可以根据子类类型动态识别T作为返回类型?我想要以下内容:
public class Parent {
public <T extends Parent> T foo() {
return (T)this;
}
}
public class Child extends Parent {
public void childMethod() {
System.out.println("childMethod called");
}
}
Run Code Online (Sandbox Code Playgroud)
然后致电:
Child child = new Child();
child.foo().childMethod();
Run Code Online (Sandbox Code Playgroud)
没有像这样定义类型:
Child child = new Child();
child.foo().<Child>childMethod(); // compiles fine
Run Code Online (Sandbox Code Playgroud)
提前致谢!
你要这个:
public class Parent<T extends Parent<T>> {
public T foo() {
return (T)this;
}
}
public class Child extends Parent<Child> {
public void childMethod() {
System.out.println("childMethod called");
}
}
Child child = new Child();
child.foo().childMethod(); // compiles
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2314 次 |
最近记录: |