「java的fields」java的field是什么
本篇文章给大家谈谈java的fields,以及java的field是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中的field是什么意思
- 2、Java反射 getFields和getDeclaredFields的区别
- 3、Java中 fields 和method如何区分?
- 4、Java中的类的field到底是指什么?
- 5、JAVA反射Field
- 6、java中getField()函数怎么用
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反射 getFields和getDeclaredFields的区别
关于获取类的字段有两种方式:getFields()和getDeclaredFields()。我们先来看看这两者的区别吧:
getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
具体编码如下:
我们先创建一个POJO
public class User {
private long id;
private String name;
public void setId(long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
}
再来获取此类中的所有字段
Field[] fields = User.class.getDeclaredFields();
获取字段的名称
String fieldName = field.getName();
获取字段的修饰符
int fieldValue = field.getModifiers();//如:private、static、final等
与某个具体的修饰符进行比较
Modifier.isStatic(fieldValue)//看此修饰符是否为静态(static)
获取字段的声明类型
field.getType();//返回的是一个class
与某个类型进行比较
field.getType() == Timestamp.class
获取指定对象中此字段的值
Object fieldObject= field.get(user);//user可以看做是从数据库中查找出来的对象
Java中 fields 和method如何区分?
zaza()是方法,lala是属性,区别有没有(),仅此而已,,static是静态方法的编制,用法就是类不用实例化直接调用这个这个类里面的方法,譬如,Bar.zaza(),就是因为zaza是静态方法,直接调用,而如果zaza不是静态方法,你说的这些先实例化,就是Bar x=new Bar();x.zaza();
Java中的类的field到底是指什么?
field就是类的属性,在类级别的定义用static,普通成员变量
方法参数是局部变量,实际上就是这么区分的。
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中getField()函数怎么用
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
/*
* 通过发生获取成员变量并使用
*/
public class ReflectDemo {
public static void main(String[] args) throws Exception {
// 获取字节码文件对象
Class c = Class.forName("cn.itcast_01.Person");
// 获取所有的成员变量
// Field[] fields = c.getFields();
// Field[] fields = c.getDeclaredFields();
// for (Field field : fields) {
// System.out.println(field);
// }
/*
* Person p = new Person(); p.address = "北京"; System.out.println(p);
*/
// 通过无参构造方法创建对象
Constructor con = c.getConstructor();
Object obj = con.newInstance();
System.out.println(obj);
// 获取单个的成员变量
// 获取address并对其赋值
Field addressField = c.getField("address");
// public void set(Object obj,Object value)
// 将指定对象变量上此 Field 对象表示的字段设置为指定的新值。
addressField.set(obj, "北京"); // 给obj对象的addressField字段设置值为"北京"
System.out.println(obj);
// 获取name并对其赋值
// NoSuchFieldException
Field nameField = c.getDeclaredField("name");
// IllegalAccessException
nameField.setAccessible(true);
nameField.set(obj, "林青霞");
System.out.println(obj);
// 获取age并对其赋值
Field ageField = c.getDeclaredField("age");
ageField.setAccessible(true);
ageField.set(obj, 27);
System.out.println(obj);
}
}
关于java的fields和java的field是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-27,除非注明,否则均为
原创文章,转载请注明出处。