繁体   English   中英

传递从相同抽象 class 延伸到 function 的 arguments

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM