java field_Java Field.get()取得对象的Field属性值

首页 > 基础教程 > 反射 > Reflection API

Java Field.get()取得对象的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

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。


版权声明:本文为weixin_36482976原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。