java - field获取值

来源:趣味经验馆 1.59W

<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 

java field获取值

例子

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

热门标签