A.class.getConstructor(String.class,int.class);这个是什么意思
时间: 2023-12-10 20:06:10 浏览: 69
这行代码是在获取类A中接受一个String类型和一个int类型参数的构造函数。具体来说,getConstructor方法需要传入一个或多个Class对象作为参数,每个Class对象代表一个构造函数的参数类型。如果找到了匹配的构造函数,则返回一个Constructor对象,可以使用它来实例化该类的对象。在这个例子中,获得的Constructor对象可以使用newInstance()方法来创建一个A类的对象,该对象接受一个String类型和一个int类型参数。
相关问题
Constructor<A> constructor = A.class.getConstructor(String.class);什么意思
这行代码是在获取类A中接受一个String类型参数的构造函数。具体来说,getConstructor方法需要传入一个或多个Class对象作为参数,每个Class对象代表一个构造函数的参数类型。如果找到了匹配的构造函数,则返回一个Constructor对象,可以使用它来实例化该类的对象。在这个例子中,获得的Constructor对象可以使用newInstance()方法来创建一个A类的对象,该对象接受一个String类型参数。需要注意的是,这里获取的构造函数不能用于创建接受int类型参数的A类对象。
package step4; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Reflect_stu { public static void main(String[] args) throws InvocationTargetException { //使用反射调用 Class clazz = null; try { clazz = Class.forName("step4.Apple"); /********** Begin *********/ Method setPriceMethod = clazz.getMethod("setPrice", double.class); Constructor appleConstructor = clazz.getConstructor(); Object apple = appleConstructor.newInstance(); setPriceMethod.invoke(apple, 14); Method getPriceMethod = clazz.getMethod("getPrice"); System.out.println(getPriceMethod.invoke(apple)); Method getTotal = clazz.getMethod("getTotal", double.class, int.class); System.out.println(getTotal.invoke(apple, 20, 24)); /********** End *********/ } catch (Exception e) { e.printStackTrace(); } } } class Apple { private double price; private int count; public Apple() { } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public double getTotal(double price, int count) { return price * count; } }
这段代码是一个使用反射调用的示例,它包括一个主类 Reflect_stu 和一个 Apple 类。在主类中,首先使用 Class.forName 方法获取 Apple 类的 Class 对象,然后使用 getMethod 方法获取 Apple 类中的 setPrice、getPrice 和 getTotal 方法,并使用 getConstructor 方法获取 Apple 类的默认构造方法的 Constructor 对象。接着使用 newInstance 方法创建一个 Apple 对象,并使用 invoke 方法调用 setPrice 方法设置 Apple 对象的价格为 14,使用 invoke 方法调用 getPrice 方法获取 Apple 对象的价格并输出,最后使用 invoke 方法调用 getTotal 方法计算 Apple 对象的总价并输出。
阅读全文