的子類我有這個類:如何返回泛型類型
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' ' –