的子类我有这个类:如何返回泛型类型
public abstract class Parent {}
public class Child extends Parent{}
我做出了一流的连接器,我想的是T类将承担母公司的子类:
public class Connector <T extends Parent>{
T t;
public Connector(T t){
this.t=t;
}
public T getObject(T t){
Child p = new Child();
return (T) p;
}
}
实现:
Child c1 = new Child();
Connector<Parent> cConnector = new Connector<Parent>(c1);
Child c2 = cConnector.getObject(c1);
一切与演员合作,但我不明白为什么我必须添加一个演员到什么是ret如果T延伸,请在getObject
方法中使用父
考虑'公共类Child2 extends Parent {}'。你的代码中断了一个'ClassCastException'。问题是:你想在这里做什么?为什么'getObject'将'T'作为参数? – Tunaki
@tunaki getObject将T作为参数,因为我想对父类 – joumvaer92
@ joumvaer92的子类进行操作如果您在操作它之后只是简单地返回't',那么您可以这样做,但是您不能假设't ''将始终是'Child'类型,所以这就是为什么你需要一个强制类型来返回一个'Child'类型的对象,但是我会考虑在构造'Connector'时返回't'并使'tt'类型为'Child' ' –