2 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
不要使用wildcard ?作為
public static Cage<?> getCage(CageAbstractFactory factory) {
return factory.createCage();
}
但是使用通用
public static <T extends Animal> Cage<T> getCage(CageAbstractFactory factory) {
return factory.createCage();
}

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
您還需要對進(jìn)行概括CageAbstractFactory:
public interface CageAbstractFactory<T> {
public Cage<T> createCage();
}
public class CageFactory {
public static <T> Cage<T> getCage(CageAbstractFactory<T> factory) {
return factory.createCage();
}
}
public class XxxCageFactory implements CageAbstractFactory<Xxx> {
@Override
public Cage<Xxx> createCage() {
return new XxxCage();
}
}
添加回答
舉報(bào)