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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM