通过Class类获取对象的步骤:
- 导入java.lang.reflect包中的Class类
- 使用Class类的forName()方法获取类对象
- 使用类对象的newInstance()方法创建实例
示例1:
import java.lang.reflect.*;
class Person {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class Main {
public static void main(String[] args) {
try {
// 获取Person类的类对象
Class<?> personClass = Class.forName("Person");
// 创建Person类的实例
Person person = (Person) personClass.newInstance();
// 设置对象属性
person.setName("Tom");
// 输出属性值
System.out.println(person.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
示例2:
import java.lang.reflect.*;
class Car {
private String brand;
private String model;
private int price;
public Car(String brand, String model, int price) {
this.brand = brand;
this.model = model;
this.price = price;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
public class Main {
public static void main(String[] args) {
try {
// 获取Car类的类对象
Class<?> carClass = Class.forName("Car");
// 获取Car类的构造方法
Constructor<?> constructor = carClass.getConstructor(String.class, String.class, int.class);
// 使用构造方法创建Car类的实例
Car car = (Car) constructor.newInstance("Toyota", "Camry", 200000);
// 输出实例属性值
System.out.println("Brand: " + car.getBrand());
System.out.println("Model: " + car.getModel());
System.out.println("Price: " + car.getPrice());
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上两个示例展示了通过Class类获取对象的过程,其中第一个示例创建的对象使用了默认构造方法,而第二个示例创建的对象使用了参数构造方法。在实际开发中,根据需要选择相应的构造方法生成实例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过Class类获取对象(实例讲解) - Python技术站