java反射的field.get(null)

在java的反射中,通过字段获取对象,是通过 

public Object get(Object obj)  

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

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

下面是例子: 
package com.huangyunbin;  
  
import java.lang.reflect.Field;  
  
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);  
    }  
  
}  
  
class A {  
     int fild=3;  
    static int staticFild=4;  
}  

结果是 
3 
4 
4

转载自:https://blog.csdn.net/moakun/article/details/80577194

posted @ 2019-04-19 14:36  looyee  阅读(3984)  评论(0编辑  收藏  举报