小编典典

如何获取列表中特定类型的所有对象?

java

如果我有一个水果列表,其中包含各种Fruit实现,如AppleBanana等。该列表是必需的,因为其他方法会对列表中的所有水果执行常规操作。

如何将特定类型的所有对象从列表中删除?例如所有的苹果?进行instanceof / if-else检查非常难看,尤其是在有许多不同的类时。

如何改善以下内容?

class Fruit;
class Apple extends Fruit;
class Banana extends Fruit;

class FruitStore {
    private List<Fruit> fruits;

    public List<Apple> getApples() {
        List<Apple> apples = new ArrayList<Apple>();

        for (Fruit fruit : fruits) {
            if (fruit instanceof Apple) {
                apples.add((Apple) fruit);
            }
        }

        return apples;
    }
}

阅读 217

收藏
2020-11-26

共1个答案

小编典典

您应该知道-实例是不好的代码实践。

编写.getType()(返回的对象的枚举类型)怎么办?

2020-11-26