java - 如何在java中迭代dto的所有成员?

标签 java

我有一个关于基本java的问题。我有一个类,它有很多 bigdecimal 成员。 我想通过循环迭代此类的所有成员。有什么办法吗?

public class LargeDTO extends CoreDTO {
    private BigDecimal price1;
    private BigDecimal price2;
    private BigDecimal price3;
    private BigDecimal price4;
    private BigDecimal price5;
    private BigDecimal price6;
    ...
    // getter & setter
}

public class UseLoop{
    LargeDTO largeDTO = fillLatgeDTO();
    BigDecimal total = BigDecimal.Zero;
    // Is it possible ?
    for(each member of largeDTO){
         total = total.add(largeDTO.getCurrentMember()); // price1, price2...
    }
}

最佳答案

使用 Class#getDeclaredFields

Field[] fields = LargeDTO.class.getDeclaredFields();

或者将您当前的设计更改为 List<BigDecimal> prices而不是有 6 个相同类型的字段。

public class LargeDTO extends CoreDTO {
    private List<BigDecimal> prices;

    public LargeDTO() {
        prices = new ArrayList<BigDecimal>();
    }

    //getter and setter for your prices
}

//in client class...
LargeDTO largeDTO = new LargeDTO();
//fill the data...
for(BigDecimal price : largeDTO.getPrices()) {
    //do what you want/need...
}

关于java - 如何在java中迭代dto的所有成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047226/

相关文章:

java - 无法从 Eclipse 中的另一个包访问类文件

java - WildFly 仅返回文件名

java - 如何在 Java 中正确重写?

java - 接受 Commons CLI 风格参数的控制台应用程序的 Dockerfile

java - OpenGL ES 3.0 通过引用调用对象添加重力和 OnCLick 事件

java - 有没有一种简单的方法可以在 Java 中按字母顺序排列字符串枚举?

java - 从 msgraph api 下载 csv 报告

java - 如何修复 android 10 中的崩溃处理

java - 包装库特定对象的最佳设计模式?

java - LocalTime.parse 在 JDK 12 上表现不同