`

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
分享到:
评论

相关推荐

    面试官:Class类中各个方法有什么区别?

    Class类中getFields()和getDeclaredFields()都是用来获取成员变量的方法,那么它们之间有什么区别呢? 我们首先使用代码来进行演示,然后我们再根据运行结果进行分析。 1.1定义一个实体类Person public class Person...

    java解析Properties配置文件为对象Bean

    利用java的反射解析Properties文件转成对象 /** * 解析properties文件为对象 * @param * @param propPath * @param cls * @return * @throws InstantiationException * @throws ...

    Java高级特性之反射是什么?

    文章目录一、Java代码在计算机中经历的三个阶段(一):源代码阶段(二):Class类对象(三):运行时阶段二、常用API的运用(一)获取class对象的三种方式1.Class.forName(String className)2.类名.class3.对象....

    java7hashmap源码-AnnotationDemo:注解基础知识,编译时注解和运行时注解例子

    关于获取类的字段有两种方式:getFields()和getDeclaredFields()。 getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。 getDeclaredFields():获得某个类的所有声明的字段,即包括public、...

    day021-反射和注解笔记和代码.rar

    Class 类的实例表示正在运行的 Java 应用程序中的类和接口; 枚举是一种类,注解(指的是注解Annotation)是一种接口; 每个数组都是 Class字节码类中的一个具体 对象 基本的 Java 类型(boolean、byte、...

    java反射对实体类取值和赋值

    项目中需要过滤前面表单页面中传过来的实体类的中的String类型变量的前后空格过滤,由于前几天看过一个磨砺营的java反射讲解,非常受益。于是,哈哈哈  public static &lt;T&gt; void modelTrim(T model){  Class&lt;T&gt; ...

    Json解析ParsreTools.zip

    } else if (type.equals("class java.lang.String")) { object = jsonObject2.getString(varName[i]); } else if (type.contains("java.util.List")) { int index1 = type.indexOf("); int ...

    APPFORPHONEAAA

    fields = Build.VERSION_CODES.class.getDeclaredFields(); for (Field field : fields) { try { // 暴力反射,获取私有信息 field.setAccessible(true); infos.put("VERSION_CODES." + field....

    Management-System-of-company:项目使用Servlet + mybatis构建的Web项目,目的是为了进一步熟悉mybatis的进一步配置,根据spring的内核编写了FormBean进行使用

    为了进一步熟悉SSM框架,我单独摘出了mybatis部署在普通的java Web项目上,从spring上插入了依赖注入,自己根据反射编写了一个映射工具类,可以根据前端返回的信息来封装bean FormBean如下 public class FormBean { ...

    Android 反射注解与动态代理综合使用详解

    前言 本章内容主要研究一下java高级特性-反射、android注解、和动态代理的使用,通过了解这些技术,可以为了以后实现组件化或者Api hook相关... getDeclaredFields(): 可以获得class的成员变量 getDeclaredMethods()

    leetcode中国-springbootPro:第一个弹簧靴

    反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,包括包括其modifiers(修饰符),fields(属性),methods(方法)等 并可于运行时改变fields内容或调用methods 我们可以更灵活的编写代码,代码可以在...

    MVPDemo.rar

    Field[] fields = this.getClass().getDeclaredFields();改为 Field[] fields = mView.getClass().getDeclaredFields(); .....field.set(this, mInjectPresenter);改为 field.set(mView, mInjectPresenter);

Global site tag (gtag.js) - Google Analytics