马会东的博客

马会东的博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

 

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

Java代码  收藏代码
  1. package com.test.bean;  
  2.   
  3. import java.sql.Timestamp;  
  4.   
  5. public class Person2 {  
  6.     private int id;  
  7.     private int age;  
  8.     private String personName;  
  9.     private Timestamp birthdate;  
  10.     public String identitify;  
  11.     protected String address;  
  12.     String phone;  
  13.       
  14. }  
  15. @Test  
  16.     public void test_getDeclaredFields() {  
  17.         Field[]fields=Person2.class.getDeclaredFields();  
  18.         for (int i = 0; i < fields.length; i++) {  
  19.             Field field = fields[i];  
  20.             System.out.println(field.getName());  
  21.         }  
  22.     }  

 运行结果:

id

age

personName

birthdate

identitify

address

phone

 

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

Java代码  收藏代码
  1. @Test  
  2.     public void test_getDeclaredFields() {  
  3.         Field[]fields=Person2.class.getFields();  
  4.         for (int i = 0; i < fields.length; i++) {  
  5.             Field field = fields[i];  
  6.             System.out.println(field.getName());  
  7.         }  
  8.     }  

 运行结果如下:

identitify

 

总结:

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

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

posted on 2015-05-06 00:58  马会东  阅读(2864)  评论(0编辑  收藏  举报