java反射-获取类的属性、构造方法、方法

简介: java反射-获取类的属性、构造方法、方法

一、基础类

public class UserInfo {
 
    private long id;
    private String username;
    private String password;
 
    public UserInfo() {
        System.out.println("public UserInfo()");
    }
 
    public UserInfo(long id) {
        super();
        this.id = id;
    }
 
    public UserInfo(long id, String username) {
        super();
        this.id = id;
        this.username = username;
    }
 
    public UserInfo(long id, String username, String password) {
        super();
        this.id = id;
        this.username = username;
        this.password = password;
        System.out.println("public UserInfo(long id, String username, String password)");
        System.out.println(id + " " + username + " " + password);
 
    }
 
    public long getId() {
        return id;
    }
 
    public void setId(long id) {
        this.id = id;
    }
 
    public String getUsername() {
        return username;
    }
 
    public void setUsername(String username) {
        this.username = username;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public void test() {
        System.out.println("public void test1()");
    }
 
    public void test(String address) {
        System.out.println("public void test2(String address) address=" + address);
    }
 
    public String test(int age) {
        System.out.println("public String test3(int age) age=" + age);
        return "我是返回值";
    }
}

二、获取属性、构造方法、方法

 public static void main(String[] args) throws IOException, ClassNotFoundException {
        //通过类获取Class对象
        Class<UserInfo> userInfoClass = UserInfo.class;
        System.out.println("属性列表:");
        //    获取属性列表
        Field[] declaredFields = userInfoClass.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            System.out.println(declaredField.getName());
        }
        System.out.println("构造方法:");
        //    获取构造方法
        Constructor<?>[] constructors = userInfoClass.getConstructors();
        for (Constructor<?> constructor : constructors) {
            Class<?>[] parameterTypes = constructor.getParameterTypes();
            System.out.println(constructor.getName()+"参数数量:"+ parameterTypes.length+"参数类型:"+ Arrays.toString(parameterTypes));
        }
        System.out.println("方法:");
        //    获取方法
        Method[] declaredMethods = userInfoClass.getDeclaredMethods();
        for (Method declaredMethod : declaredMethods) {
            System.out.println(declaredMethod);
        }
    }
属性列表:
id
username
password
构造方法:
org.example.entity.UserInfo参数数量:3参数类型:[long, class java.lang.String, class java.lang.String]
org.example.entity.UserInfo参数数量:2参数类型:[long, class java.lang.String]
org.example.entity.UserInfo参数数量:1参数类型:[long]
org.example.entity.UserInfo参数数量:0参数类型:[]
方法:
public void org.example.entity.UserInfo.test()
public java.lang.String org.example.entity.UserInfo.test(int)
public void org.example.entity.UserInfo.test(java.lang.String)
public long org.example.entity.UserInfo.getId()
public void org.example.entity.UserInfo.setPassword(java.lang.String)
public java.lang.String org.example.entity.UserInfo.getUsername()
public void org.example.entity.UserInfo.setId(long)
public void org.example.entity.UserInfo.setUsername(java.lang.String)
public java.lang.String org.example.entity.UserInfo.getPassword()
目录
相关文章
|
15小时前
|
Java
深入了解Java中的BigDecimal类及其方法
深入了解Java中的BigDecimal类及其方法
9 1
|
17小时前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
4 0
|
19小时前
|
安全 NoSQL Java
探索Java Optional类:构造器、成员变量与方法
探索Java Optional类:构造器、成员变量与方法
4 0
|
19小时前
|
存储 缓存 Java
探索 Java 中 `Class.java` 的属性与方法
探索 Java 中 `Class.java` 的属性与方法
8 1
|
1天前
|
存储 Java API
Java基础之String类
Java的String类是引用类型,用于创建和操作字符串。字符串对象在`java.lang`包中,不可变。创建方式包括字面量和`new`关键字。字符串池存储字符串常量,避免重复。比较字符串用`equals()`(区分大小写)和`equalsIgnoreCase()`(不区分大小写)。`length()`返回长度,`concat()`或`+`拼接,`substring()`截取,`indexOf()`和`lastIndexOf()`查找,`replace()`替换,`split()`分割。这些是常用的字符串API。
6 0
|
1天前
|
Java
Java基础之String类
Java基础之String类
8 0
|
1天前
|
算法 安全 Java
Java代码优化方法和具体展示
Java代码优化方法和具体展示
|
1天前
|
存储 安全 Java
Java.security包中的KeyStore类详解
Java.security包中的KeyStore类详解
6 0
java202303java学习笔记第四十天反射获取构造方法1
java202303java学习笔记第四十天反射获取构造方法1
45 0
|
存储 Java Spring
java笔记之反射机制(方法&构造方法)
如何获取Class 1.Class中静态方法 forName("类全名") 2.类.class关键字 3.对象引用.getClass()方法 Class中的常用方法 int = getModifiers(); 获取类的修饰符(权限+特征) String = getName(); 获取类的全名(包名.类名) String = getSimpleName(); 获取类简单名(只有类名 缺少包) Class = getSuperClass(); 获取当前类父类的对应Class Class[] = getInterfaces(); 获取当前类父亲接口 Package
98 0