欢迎访问宙启技术站
智能推送

Java反射机制中常用的函数和方法及其使用方法

发布时间:2023-06-10 11:11:28

Java反射机制是Java语言提供的一种让程序在运行时获取自身信息并进行操作的能力。它在实际开发中有着广泛的应用,可以帮助我们更加灵活地设计和构建程序。在Java反射机制中,常用的函数和方法有以下几个:

1. getClass()方法

getClass()方法是Object类中的一个方法,可以获取当前对象的Class对象,即当前对象所属的类型。例如:

String str = "Hello world";
Class strClass = str.getClass();
System.out.println(strClass);

输出结果为:

class java.lang.String

2. newInstance()方法

newInstance()方法是Class类中的一个方法,可以创建一个该Class类型的对象。例如:

String str = String.class.newInstance();
System.out.println(str);

输出结果为空字符串。

3. getDeclaredFields()方法

getDeclaredFields()方法是Class类中的一个方法,可以获取该类型中定义的所有字段,包括私有字段。例如:

class Person {
    private String name;
    private int age;
    public String address;
}

public static void main(String[] args) {
    Class personClass = Person.class;
    Field[] fields = personClass.getDeclaredFields();
    for (Field field : fields) {
        System.out.println(field.getName());
    }
}

输出结果为:

name
age
address

4. getFields()方法

getFields()方法是Class类中的一个方法,可以获取该类型中的所有公共字段。例如:

class Person {
    private String name;
    public int age;
    public String address;
}

public static void main(String[] args) {
    Class personClass = Person.class;
    Field[] fields = personClass.getFields();
    for (Field field : fields) {
        System.out.println(field.getName());
    }
}

输出结果为:

age
address

5. getDeclaredMethod()方法

getDeclaredMethod()方法是Class类中的一个方法,可以获取该类型中定义的某个方法,包括私有方法。例如:

class Person {
    private String name;
    private int age;
    public String getAddress() {
        return "Beijing";
    }
}

public static void main(String[] args) throws Exception {
    Class personClass = Person.class;
    Method getAddressMethod = personClass.getDeclaredMethod("getAddress");
    String address = (String) getAddressMethod.invoke(person, null);
    System.out.println(address);
}

输出结果为:

Beijing

6. getMethod()方法

getMethod()方法是Class类中的一个方法,可以获取该类型中的某个公共方法。例如:

class Person {
    private String name;
    private int age;
    public String getAddress() {
        return "Beijing";
    }
}

public static void main(String[] args) throws Exception {
    Class personClass = Person.class;
    Method getAddressMethod = personClass.getMethod("getAddress");
    String address = (String) getAddressMethod.invoke(person, null);
    System.out.println(address);
}

输出结果为:

Beijing

以上是Java反射机制中常用的函数和方法及其使用方法。当然,反射机制并不仅限于以上的方法,还有很多其他的方法和功能,需要在具体场景下灵活使用。