包含javafield的词条

本文目录一览:

Java中的类的field到底是指什么?

field就是类的属性,在类级别的定义用static,普通成员变量

方法参数是局部变量,实际上就是这么区分的。

java field获取值

很多朋友都想知道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

java field为什么需要单独导入

因为Field并不是java.lang包下的直接子类

而是java.lang.reflect包下的子类,所以需要导包,只有lang包下的直接子类不需要导包例如:java.lang.String就不需要导包

java中的field是什么意思

field的意思是“字段”,这里可以理解成变量.

field的解释:

class A{

private int a; //private field私有域

protected double b; //protected field保护域

public String c; //public field公共域

A d; //default access field默认访问域

public static Object e; //public static field公共静态域

.

}

java中的field什么意思

主要方法

getType(): 获取属性声明时类型对象(返回class对象)

getGenericType() : 返回属性声的Type类型

getName() : 获取属性声明时名字

getAnnotations() : 获得这个属性上所有的注释

getModifiers() : 获取属性的修饰

isEnumConstant() : 判断这个属性是否是枚举类

isSynthetic() : 判断这个属性是否是 复合类

get(Object obj) : 取得obj对象这个Field上的值

set(Object obj, Object value) : 向obj对象的这个Field设置新值value

Field类中最常用的是get(Object obj)和set(Object obj, Object value)这两个方法,所以这两个方法是最重要的。

getType() 和 getGenericType()的区别 :

1.首先是返回的类型不一样,一个是Class对象一个是Type接口

2.如果属性是一个泛型,从getType()只能得到这个属性的接口类型。但从getGenericType()还能得到这个泛型的参数类型。

isEnumConstant()和isSynthetic() :

对象中如果有属性是枚举类或复合类,用这两个方法返回的值并不是我们想象的true而是false。其实这两个方法是对编译生成的才有效。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/309285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-04 19:30
下一篇 2025-01-04 19:30

相关推荐

发表回复

登录后才能评论