java field获取值

作者:原创时间:2022-03-30
文档

很多朋友都想知道java field怎么获取值?下面就一起来了解一下吧~

定义

public Object get(Object obj)

1. 如果字段不是静态字段的话,要传入反射类的对象.如果传null是会报java.lang.NullPointerException 

2. 如果字段是静态字段的话,传入任何对象都是可以的,包括null 

例子

1. 获取属性的值

public static void main(String[] args) throws Exception {
    //使用反射第一步:获取操作类FieldDemo所对应的Class对象
    Class < ?>cls = Class.forName("com.testReflect.FieldDemo");
    //使用FieldDemo类的class对象生成 实例
    Object obj = cls.newInstance();
    //通过Class类中getField(String name): 获取类特定的方法,name参数指定了属性的名称
    Field field = cls.getField("num1");

    //拿到了Field类的实例后就可以调用其中的方法了
    //方法:get(Object obj) 返回指定对象obj上此 Field 表示的字段的值
    System.out.println("属性值:  " + field.get(obj));

    //方法: set(Object obj, Object value)  将指定对象变量上此 Field 对象表示的字段设置为指定的新值
    field.set(obj, 55);
    System.out.println("修改属性值后 --> get(Object obj):  " + field.get(obj));
}

2. get()传值

class A {  
     int fild=3;  
    static int staticFild=4;  
} 
public class FiledTest  
{  
    public static void main(String[] args) throws Exception  
    {  
        Field field=A.class.getDeclaredField("fild");  
        int a= (Integer)field.get(new A()) ;  
//        int c= (Integer)field.get(null) ; //不是静态字段不能传null  
        System.out.println(a);  
  
        Field staticfield=A.class.getDeclaredField("staticFild");  
        int b= (Integer)staticfield.get("") ;  
        int d= (Integer)staticfield.get(null) ;  
        System.out.println(b);  
        System.out.println(d);  
    }  
}

运行结果:

3 
4 
4

以上就是小编今天的分享,希望能帮到大家。

显示全文
java dockerfile java file.exists() java fileinputstream java findfirst java flatmap java dowhile java flink java drools java dto java dynamic java flume java ear java foreach循环 java fork java ecc加密 java formatter java echarts java ehcache java email java empty java field java divide java feign java fastjson java dict java development java fastdfs java dev java dependency java调用asmx接口 java delete java获取绝对值 java调用c++ java调用c++接口 java delegate java decodeuri java decode java调python java decaf java读取本地excel