美文网首页
Java中的反射 之 Member 接口

Java中的反射 之 Member 接口

作者: JSON_NULL | 来源:发表于2017-12-29 16:14 被阅读291次

简介

Member接口用来表示“类”中的一个成员(字段或方法)或构造函数。

实现了这个接口的类

  1. Constructor - 构造器
  2. Executable - 可执行的类型,是Constructor和Method的父类
  3. Field - 属性
  4. Method - 方法

public Class<?> getDeclaringClass();

返回声明当前“成员”的类或接口。这个方法为从“成员”找“声明者”提供了支持。也就是说当你拿到一个“成员”(属性、方法、构造器)后可以调用这个方法以获取声明这个“成员”的类或接口。

package com.ibestcode.wfso.web.blog.Controller;
public class Test{
  public String filedName;
  public static void main(String[] args){
    Field field = Test.class.getDeclaredFields()[0];
    System.out.println(field.getDeclaringClass());
  }
}
// 以上代码输出
class com.ibestcode.wfso.web.blog.Controller.Test

public String getName();

返回由当前“成员”对象所表示的底层“成员”或“构造函数”的名称。

package com.ibestcode.wfso.web.blog.Controller;
public class Test{
  public String fieldName;
  public static void main(String[] args){
    Field field = Test.class.getDeclaredFields()[0];
    System.out.println(field.getName());
  }
}
// 以上代码输出
fieldName

public int getModifiers();

以一个整数的形式返回当前“成员”对象的Java语言修饰符。你可以使用 Modifier类中的toString静态方法把它转化成字符串形式。

public class Test{
  public String a;
  protected String b;
  private String c;
  
  
  public static void main(String[] args){
    
    Field fields[] = Test.class.getDeclaredFields();
    System.out.println("长度:"+fields.length);
    for(Member m:fields){
      System.out.println(Modifier.toString(m.getModifiers()));
    }
  }
}
// 以上代码输出
长度:3
public
protected
private

public boolean isSynthetic();

如果该成员是由编译器引入的,则返回true;否则返回false。

具体的什么意思,我也不是太理解,等到以后深入学习了再来补充吧。

1

相关文章

网友评论

      本文标题:Java中的反射 之 Member 接口

      本文链接:https://www.haomeiwen.com/subject/gdmvgxtx.html