Java Field[] Field理解
来源:互联网 发布:快递怎么延长收货 淘宝 编辑:程序博客网 时间:2024/06/04 17:40
以下只是了解Field的用法,以下代码参考的点击打开链接
java 中getDeclaredFields() 与getFields() 的区别
getDeclaredFields()返回Class中所有的字段,包括私有字段。例证:
java代码
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修饰的字段。例证:
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修饰的字段
Field.setAccessible()方法的用法
java代码中,常常将一个类的成员变量置为private
在类的外面获取此类的私有成员变量的value时,需要设置setAccessible方法
例如:
这是一个外部类User
public class User {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
Class clazz = null;User user = new User();user.setId(11);user.setName("ruin");try {clazz = Class.forName("com.xyz.User");for(Field field:clazz.getDeclaredFields()){field.setAccessible(true);System.out.println(field.get(user));}} catch (Exception e) {e.printStackTrace();}
运行结果是
11
ruin
如果去掉这个方法Class clazz = null;User user = new User();user.setId(11);user.setName("ruin");try {clazz = Class.forName("com.xyz.User");for(Field field:clazz.getDeclaredFields()){//field.setAccessible(true);System.out.println(field.get(user));}} catch (Exception e) {e.printStackTrace();}
运行结果是
Class com.xyz.Test can not access a member of class com.xyz.User with modifiers "private"
0 0
- Java Field[] Field理解
- Field
- 关于java中field的理解
- v4l2 FIELD 的理解
- v4l2 FIELD 的理解
- java reflect Field
- java 反射 Field
- java 反射 Field类
- java 反射 Field类
- Java Reflection - Field
- java 反射 Field类
- Java Field 详解
- java 反射 Field类
- Java Field 详解
- java 反射 Field类
- Java中field
- JAVA反射Field使用
- java反射--Field
- 以太坊智能合约编程之菜鸟教程
- [1,2,3].forEach(alert);这种写法有什么利和弊吗?
- C Primer Plus5-2
- [转载]Hive如何控制Map和Reduce个数
- 简单的时间段选择控件
- Java Field[] Field理解
- 【转】自定义presentviewcontroller和pushviewcontroller转场动画
- Ogre2.1 灯光与阴影
- C Primer Plus5-3
- Unity教程之-Unity3d实现屏幕抖动效果
- C Primer Plus5-4
- 浅析多租户在 Java 平台和某些 PaaS 上的实现
- 基于fis的前端模块化和工程化方案
- jquery 合并两个 json 对象