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