`

java Class getDeclaredFields() 与getFields()的区别

阅读更多

java 中getDeclaredFields() 与getFields() 的区别

 

getDeclaredFields()返回Class中所有的字段,包括私有字段。例证:

package com.test.bean;

import java.sql.Timestamp;

public class Person2 {
	private int id;
	private int age;
	private String personName;
	private Timestamp birthdate;
	public String identitify;
	protected String address;
	String phone;
	
}
@Test
	public void test_getDeclaredFields() {
		Field[]fields=Person2.class.getDeclaredFields();
		for (int i = 0; i < fields.length; i++) {
			Field field = fields[i];
			System.out.println(field.getName());
		}
	}

 运行结果:

id

age

personName

birthdate

identitify

address

phone

 

getFields  只返回公共字段,即有public修饰的字段。例证:

@Test
	public void test_getDeclaredFields() {
		Field[]fields=Person2.class.getFields();
		for (int i = 0; i < fields.length; i++) {
			Field field = fields[i];
			System.out.println(field.getName());
		}
	}

 运行结果如下:

identitify

 

总结:

(1)getDeclaredFields()返回Class中所有的字段,包括私有字段;

(2)getFields  只返回公共字段,即有public修饰的字段

2
2
分享到:
评论

相关推荐

    认识Java的Class类.doc

    3. **对象与Class的关系**:每个Java对象都有一个隐藏的`class`字段,存储着该对象所属类的Class对象的引用。这意味着我们可以通过`obj.getClass()`获取任何对象的Class对象。 4. **类加载器**:Class对象与类加载...

    java例子 java反射

    在给出的“JavaClass”示例中,可能包含了一个或多个展示如何使用Java反射的代码片段,可能涉及到创建`Class`对象、获取和调用方法、访问字段等内容。通过分析这些例子,你可以更深入地理解Java反射的使用方式及其在...

    JAVA反射机制与动态代理

    4. 访问类的属性:通过Class对象的getFields()和getField()方法可以获取类的公共字段,通过getDeclaredFields()和getDeclaredField()方法可以获取包括私有的所有字段。 5. 调用方法:通过Class对象的getMethods()和...

    JAVA反射机制的入门代码

    3. **访问字段**:通过`Class`对象的`getFields()`或`getDeclaredFields()`方法获取所有公共或私有字段,然后使用`Field`对象的`get()`或`set()`方法读取或修改对象的字段值。 4. **调用方法**:使用`Class`对象的`...

    java反射,获取所有属性、方法以及List集合类

    使用`getFields()`方法可以获取到类的所有public字段,如果需要获取包括私有的和受保护的字段,可以使用`getDeclaredFields()`方法。这些`Field`对象提供了设置和获取字段值的能力,通过`set()`和`get()`方法。 `...

    Java软件开发实战 Java基础与案例开发详解 15-1 反射 共13页.pdf

    Class&lt;?&gt; clazz = Class.forName("java.lang.String"); ``` 3. **使用类型名`.class`**: 直接使用类名或数组类型的`.class`属性。 ```java Class&lt;?&gt; clazz = Integer.class; Class&lt;?&gt; clazz2 = int[].class; `...

    JAVA上课笔记class_07

    根据给定的信息,我们可以总结出本篇JAVA上课笔记class_07主要讲解的是Java反射机制的相关知识点。反射机制是Java语言的一个重要特性,它允许在运行时检查类、接口、字段和方法等信息,并能够创建对象及调用方法。...

    Java反射简单例子

    `Class`对象提供了`getFields()`方法,它返回所有公共字段,而`getDeclaredFields()`则返回所有字段(包括私有和受保护的)。假设`Robot`类有一个名为`name`的公共字段,可以这样获取它: ```java Field nameField ...

    java反射详解

    通过`Class`对象的`getFields()`和`getDeclaredFields()`方法可以获得一个类的所有字段信息。 ```java Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { System.out.println(field); } ...

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    - **获取属性**:通过`Class.getDeclaredFields()`或`Class.getFields()`方法可以获取类的所有字段,然后通过`Field`对象的`getName()`方法获取属性名。 - **访问和修改属性值**:使用`Field`的`get(Object obj)`...

    java反射机制详解与应用

    2. 使用`Class.forName(String className)`静态方法:通过类的全限定名获取Class对象,如`Class c1 = Class.forName("java.lang.String");` 3. 使用`.class`语法:直接在类名后加上`.class`,例如`Class c1 = ...

    简单的java反射dome

    4. **Field对象**:表示类的字段(属性),`Class.getFields()`获取公共字段,`Class.getDeclaredFields()`获取所有字段。 **使用Java反射的基本步骤** 1. 获取Class对象:如`Class&lt;?&gt; clazz = Class.forName("全...

    JAVA反射机制和JDBC和各种数据库的连接

    通过`Class`的`getDeclaredFields()`或`getFields()`获取字段,然后使用`set()`和`get()`方法对字段进行读写操作,包括访问私有字段。 4. 调用方法:`Method`类代表类的方法。`Class`的`getDeclaredMethods()`或`...

    Java反射机制

    2. **获取类的Fields**:使用`Class.getFields()`或`Class.getDeclaredFields()`方法可以获取类的公共字段或所有声明的字段。 3. **获取类的Method**:使用`Class.getMethods()`或`Class.getDeclaredMethods()`方法...

    java发射demo

    `Class`对象的`getFields()`获取公共字段,`getDeclaredFields()`获取所有字段。`Field`对象的`get()`和`set()`方法用于读取和设置字段值。 Java反射的应用场景广泛,例如: - 动态代理:Java的`Proxy`类和`...

    java反射 java反射 java反射java反射

    6. 对象空间(Object Space)与类空间(Class Space): - 对象空间:存储实际对象的数据,每个对象都有自己的内存空间,包含其属性的值。 - 类空间:存储类的元数据,如类的结构、属性、方法等信息,是所有对象...

    java反射机制学习(三):通过反射获取实体类的属性、方法、接口和父类信息

    `Class`类提供了`getFields()`方法,它返回类的所有公共字段;如果需要获取私有或受保护的字段,可以使用`getDeclaredFields()`。以下是如何获取并打印`Person`类所有字段的示例: ```java Class&lt;?&gt; clazz = Class....

    Java Reflection in Action

    2. **获取类的字段(Fields)**:通过Class对象的`getFields()`和`getDeclaredFields()`方法,可以获取到类的所有公共字段和所有字段,包括私有字段。`setAccessible(true)`可以用来绕过访问限制。 3. **调用方法...

    java反射规范--java资源

    可以使用`Class`对象的`getDeclaredFields()`或`getFields()`方法来获取所有的字段信息。`getDeclaredFields()`返回所有声明的字段,而`getFields()`只返回公共字段。 ##### 2.3 Method对象 `Method`对象表示类中...

Global site tag (gtag.js) - Google Analytics