<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
很多朋友都想知道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