我是靠谱客的博主 踏实发带,最近开发中收集的这篇文章主要介绍Java反射机制(取得类的全部的属性),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  getFields

 public Field[] getFields()
throws SecurityException
返回一个包含某些 Field 对象的数组, 这些对象反映此 Class 对象所表示的类或接口的所有可访问公共字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果类或接口没有可访问的公共字段,或者表示一个数组类、一个基本类型或 void,则此方法返回长度为 0 的数组。

特别地,如果该 Class 对象表示一个类,则此方法返回该类及其所有超类的公共字段。如果该 Class 对象表示一个接口,则此方法返回该接口及其所有超接口的公共字段。

该方法不反映数组类的隐式长度字段。用户代码应使用 Array 类的方法来操作数组。

getDeclaredFields

public Field[] getDeclaredFields()
throws SecurityException
返回 Field 对象的一个数组, 这些对象反映此 Class 对象所表示的类或接口所声明的所有字段。包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何字段,或者此 Class 对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。

具体实现代码实例:

GetFieldsDemo01

package org.lxh.demo.classdemo04;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class GetFieldsDemo01 {

 public static void main(String[] args) throws Exception {
  Class<?> c = Class.forName("org.lxh.demo.classdemo04.Person");
  {
   /*Field f[] = c.getFields(); // 取得全部的变量   共有的属性,可以访问的属性
   for (int i = 0; i < f.length; i++) {
    String mod = Modifier.toString(f[i].getModifiers());
    System.out.print(mod + "  ");
    System.out.print("属性名字是:"+f[i].getName()+"  ");
    System.out.println(f[i].getType().getName());
   }*/
  }
  {
   Field f[] = c.getDeclaredFields(); // 取得全部的变量     不包括接口的属性
   for (int i = 0; i < f.length; i++) {
    String mod = Modifier.toString(f[i].getModifiers());
    System.out.print(mod + "  ");
    System.out.print("属性名字是:"+f[i].getName()+"  ");
    System.out.println(f[i].getType().getName());
   }
  }
 }
}
 Person

package org.lxh.demo.classdemo04;

interface Info {
 public static final String AUTHOR = "MLDN";
    public String jiekou=null;
    public int shuzhi=0;
 public String getInfo();

 public String say(String name, String content);

 public void sayHello();
}

public class Person implements Info {
 private String name;
 private int age;
 public int phone;
 public String sex;

 public Person() {//无参构造方法
 }

 public Person(String name) {
  this.setName(name);
 }

 public Person(String name, int age) {
  this(name);
  this.setAge(age);
 }

 public String getInfo() {
  return "Hello World!!!";
 }

 public String say(String name, String content) {
  return name + "说了:" + content;
 }

 public void sayHello() {
  System.out.println("hello --> " + AUTHOR);
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public String toString() {
  return "姓名:" + this.name + ";年龄:" + this.age;
 }
}

 

 

最后

以上就是踏实发带为你收集整理的Java反射机制(取得类的全部的属性)的全部内容,希望文章能够帮你解决Java反射机制(取得类的全部的属性)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部