[英]Pass arguments that extends from same abstract class to function
我完成了一些练习,但我想稍微优化一下。 我有两个名为“U1”和“U2”的类,它们都扩展了相同的抽象 class,称为“Rocket”,我有两个名为“loadU1”和“loadU2”的函数返回 ArrayList(U1 或 U2),我想优化它一个 function 没有成功。 我尝试了泛型类型,但我不知道我应该如何知道要返回或转换为哪种类型。 有可能吗? 注意:我没有分享我尝试过的一些代码,因为我什至不知道应该从哪里开始(JAVA 新手)。
这是类的结构:
public class U1 extends Rocket {}
public class U2 extend Rocket {}
abstract class Rocket implements SpaceShip {}
这些是当前的功能:
public ArrayList<U1> loadU1(ArrayList<Item> items) {
ArrayList<U1> u1Rockets = new ArrayList<>();
return u1Rockets;
}
public ArrayList<U2> loadU2(ArrayList<Item> items) {
ArrayList<U2> u2Rockets = new ArrayList<>();
return u2Rockets;
}
也许你正在寻找这样的东西:
public <T extends Rocket> List<T> load(List<Item> items) {
List<T> rockets = new ArrayList<>();
return rockets;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.