本文目录一览:
- JAVA反射Field
- java中的field是什么意思
- [java field为什么需要单独导入](#java field为什么需要单独导入)
- java中的field什么意思
- Java中的类的field到底是指什么?
- 请问java中的field是什么意思
JAVA反射Field
//直接上例子代码
import java.lang.reflect.Field;
public class Test {
public final int a = 5;
public static void main(String[] args) {
Test test = new Test();
try {
Field field = Test.class.getField("a"); //指定要获取的字段名
//从Test对象中获取一个整形值;相应的也有getFloat()/getBoolean()等等方法。。详见JDK文档
System.out.println(field.getInt(test));
//如果不能确定是什么数据类型可以返回一个Object
Object obj = field.get(test);
System.out.println(obj);
System.out.println(obj.getClass().getName()); //获取对象的数据类型
} catch (Exception e) {
e.printStackTrace();
}
}
}
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为什么需要单独导入
因为Field
并不是java.lang
包下的直接子类,而是java.lang.reflect
包下的子类,所以需要导包。只有lang
包下的直接子类不需要导包,例如:java.lang.String
就不需要导包。
java中的field什么意思
主要方法
getType()
:获取属性声明时类型对象(返回class对象)getGenericType()
:返回属性声的Type类型getName()
:获取属性声明时名字getAnnotations()
:获得这个属性上所有的注释getModifiers()
:获取属性的修饰isEnumConstant()
:判断这个属性是否是枚举类isSynthetic()
:判断这个属性是否是复合类get(Object obj)
:取得obj对象这个Field上的值set(Object obj, Object value)
:向obj对象的这个Field设置新值valueField
类中最常用的是get(Object obj)
和set(Object obj, Object value)
这两个方法,所以这两个方法是最重要的。
getType()
和 getGenericType()
的区别:
- 首先是返回的类型不一样,一个是
Class
对象一个是Type
接口 - 如果属性是一个泛型,从
getType()
只能得到这个属性的接口类型。但从getGenericType()
还能得到这个泛型的参数类型。
isEnumConstant()
和isSynthetic()
:
对象中如果有属性是枚举类或复合类,用这两个方法返回的值并不是我们想象的true
而是false
。其实这两个方法是对编译生成的才有效。
Java中的类的field到底是指什么?
field
就是类的属性,在类级别的定义用static
,普通成员变量。
方法参数是局部变量,实际上就是这么区分的。
请问java中的field是什么意思
Java中Field
提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类字段或实例字段。Field
是成员变量的意思。Field
也是一个类,该类位于java.lang.reflect
包下。
Field使用示例:
class Test {
private int a; // private field私有域
protected double b; // protected field保护域
public String c; // public field公共域
Test d; // default access field默认访问域
public static Object e; // public static field公共静态域
}
扩展资料
- 获取变量的类型:
Field.getType()
:返回这个变量的类型。Field.getGenericType()
:如果当前属性有签名属性类型就返回,否则就返回Field.getType()
。isEnumConstant()
:判断这个属性是否是枚举类。
- 获取成员变量的修饰符:
Field.getModifiers()
:以整数形式返回由此Field
对象表示的字段的Java语言修饰符。
- 获取和修改成员变量的值:
getName()
:获取属性的名字。get(Object obj)
:返回指定对象obj
上此Field
表示的字段的值。set(Object obj, Object value)
:将指定对象变量上此Field
对象表示的字段设置为指定的新值。 参考资料来源:Oracle-Java