Java 求同一个class 不同对象之间的最大属性

Java find the largest attribute between different objects of the same class

我正在尝试查找每个零件数量最多的仓库。我在下面定义了一个超级class。

 public abstract class warehouse {
    int part1;
    int part2;
    int part3;
    int part4;
    int part5;
    String name;
    File inventory = new File("Inventory.txt");
    File transactions = new File("Transactions.txt");
    public warehouse() throws FileNotFoundException {

    }

    public int getPart1() {
        return part1;
    }
    public int getPart2(){
        return part2;
    }
    public int getPart3() {
        return part3;
    }
    public int getPart4() {
        return part4;
    }
    public int getPart5() {
        return part5;
    }

我有六个子class,我将显示其中一个的定义,它们除了名称字段外都是一样的。

import java.io.FileNotFoundException;
public class Atlanta extends warehouse {

    public Atlanta() throws FileNotFoundException {
        name = "Atlanta";
    }
}

我正在尝试比较所有六个 class 之间的 part1。我将函数设置为 return 每个部分的值,但是如果 (Atlanta.getPart1() > Chicago.getPart1() && Atlanta.getPart1()> Denver.getPart1())... 有一种方法我可以找到哪个对象具有每个属性的最大值而不必把每个组合和每个部分都写出来?

如有任何帮助,我们将不胜感激。

您可以根据摘要 class

Collection.max() 与适当的 Comparator 结合使用
Collections.max(
  Arrays.asList(new Atlanta(), new Pennsylvania(), ...),
  Comparator.comparing(warehouse::getPart1)
);