有没有一种方法可以检查对象的属性是否具有值?

湖北:

我有一个对象,里面充满了数据库中的数据。现在,我想知道还是必须知道该对象的哪些属性中是否包含值。

我的实体类:

public class PurchasingDeadlineValuesEntity {
@Expose
private Long purchasingDeadlineValuesId;
@Expose private Long purchasingDeadlineId;
@Expose private Long mandantKagId;
@Expose private double zero;
@Expose private double one;
@Expose private double two;
@Expose private double three;
@Expose private double four;
@Expose private double five;
@Expose private double six;
@Expose private double seven;
@Expose private double eight;
@Expose private double nine;
@Expose private double ten;
@Expose private double eleven;
@Expose private double twelve;
@Expose private double thirteen;
private Timestamp dateCreated;
private Timestamp dateUpdated;

//getter & Setter..and so 

我考虑过从类中获取声明的字段,并将它们与对象的属性进行比较。但是,我该如何进一步。

这是我无法取得成功的尝试:

    protected HashMap<Integer, HashMap<String, Double>> extractKagAndPurchasingDeadlines() {
    Field[] fields = PurchasingDeadlineValuesEntity.class.getDeclaredFields();

    for (MandantKagAccountEntity mandantKagAccountEntity : m_k_a_E) {
        PurchasingDeadlineValuesEntity purchasingDeadlineValuesEntity = mandantKagAccountEntity.getPurchasingDeadlineValuesEntity();
        for (Field field : fields) {
            if (field.getType().equals(double.class)) {

            }
        }
    }
}

因此,现在我需要确定PurchasingDeadline对象中double字段的值是否大于0.0。但它们也可以为空。

有人能帮我吗?谢谢

Maksim Iakunin:

我想,这就是您想要的:

for (Field field : fields) {
    if (field.getType().equals(double.class)) {
        final double value = (double) field.get(purchasingDeadlineValuesEntity);
        if (value > 0.0) {
            // do whatever you want with `value`
        }
    }
}

这是完整的工作示例:

import java.lang.reflect.Field;

class Scratch {
    public static void main(String[] args) throws IllegalAccessException {

        final PurchasingDeadlineValuesEntity purchasingDeadlineValuesEntity = new PurchasingDeadlineValuesEntity();
        purchasingDeadlineValuesEntity.setDeadlineId(2L);
        purchasingDeadlineValuesEntity.setZero(0.0);
        purchasingDeadlineValuesEntity.setOne(2.0);

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

        for (Field field : fields) {
            if (field.getType().equals(double.class)) {
                final double value = (double) field.get(purchasingDeadlineValuesEntity);
                if (value > 0.0) {
                    System.out.println("field name = " + field.getName());
                    System.out.println("field value = " + value);
                }
            }
        }
    }

    public static class PurchasingDeadlineValuesEntity {
        private Long deadlineId;

        private double zero;

        private double one;

        private double two;

        public Long getDeadlineId() {
            return deadlineId;
        }

        public void setDeadlineId(Long deadlineId) {
            this.deadlineId = deadlineId;
        }

        public double getZero() {
            return zero;
        }

        public void setZero(double zero) {
            this.zero = zero;
        }

        public double getOne() {
            return one;
        }

        public void setOne(double one) {
            this.one = one;
        }

        public double getTwo() {
            return two;
        }

        public void setTwo(double two) {
            this.two = two;
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种方法可以在Java运行时中检查对象是否具有特定方法?

有没有一种方法可以检查属性是否有设置器?

有没有一种方法可以检查对象的所有子对象是否都处于活动状态?

有没有一种方法可以检查数据属性是否存在?

有没有一种方法可以检查对象是SQL Server中的表还是视图?

Angular2-有没有一种方法可以检查对象资源是否超过...个字母?

有没有一种方法可以获取具有set方法的属性?

在Python中,有没有一种方法可以找到具有特定属性的对象?

有没有一种方法来查找python对象是否具有属性?

有没有一种方法可以找到并返回具有特定值的属性?

有没有一种方法可以强制子值具有与对象的键匹配的字段?

有没有一种方法可以检查变量是否等于一组值?| C

有没有一种方法来检查QJsonObject对象是否包含特定属性?

有没有一种方法可以检查提交后Java对象是否已更改

(Lodash) 有没有一种方法可以检查集合中是否存在(嵌套)相同的对象?

有没有一种方法可以检查特定的模板对象是否准备好了?

有没有一种方法可以检查var是否正在使用setInterval()?

有没有一种方法可以检查函数是否在python中是递归的?

有没有一种方法可以检查按钮是否被选中?

有没有一种方法可以检查单击的按钮的textContent是否与数组中的任何值匹配?

有没有一种方法可以检查序言中元素是否为布尔值?

有没有一种方法可以减少检查是否满足枚举值所需的代码量?

有没有一种方法可以检查宏的非数字值

有没有一种方法可以模拟请求对象上的属性

有没有一种方法可以从msbuild中获取属性的值?

有没有一种优雅的方法来检查对象的类型是否属于类型列表?

有没有一种优雅的方法来检查对象中是否存在键和值,然后使用它?

有没有一种方法可以检查是否为新的Parse对象或更新现有对象调用beforeSave?

有没有一种方法可以检查流在Java中是否有限?