gpt4 book ai didi

java - 使用反射来了解字段和相对值

转载 作者:行者123 更新时间:2023-12-01 12:02:07 25 4
gpt4 key购买 nike

我正在尝试使用反射来了解类 (MyClass) 的字段和相对值。

到目前为止,我已经这样做了,但这让我只知道字段和相对类型(String、int 等),而不是我的值:

    MyClass myClassFromDB = <--- I filled this object by making a query with hibernate
Class <?> myClass= myClassFromDB.getClass();
Field [] fieldList= myClass.getDeclaredFields();

for(Field field: fieldList){
System.out.println(field.getName()+": "+myClass.getDeclaredField(field.getName()));
}

我以为使用getDeclaredField()我会得到这些字段的值,但我得到的只是这样的private java.lang.Integer package.className.FieldName >

最佳答案

为了获取您需要像这样使用的字段值

for(Field field: fieldList){            
try {

// Will return field value of object type, you need to cast it to the required type. For identifying the object type you can use 'instanceof' keyword.
Object object = myClass.getDeclaredField(field.getName()).get(myClassFromDB);

System.out.println("object :: "+object);

if(object instanceof String){
System.out.println("val :: "+(String)object);
} // Similarily you can do it for other types.

} catch (IllegalArgumentException ex) {
System.out.println("IllegalArgumentException :: "+ex.getMessage());
} catch (IllegalAccessException ex) {
System.out.println("IllegalAccessException :: "+ex.getMessage());
}
}

get(instance) -- 将返回与该字段关联的字段值。

关于java - 使用反射来了解字段和相对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27918713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com