반사 메커니즘은 Constructor.newInstance() 메서드를 통해 생성자 메서드를 호출하여 실제 매개변수 목록을 전달하여 객체를 생성할 수 있습니다. 이 방법을 사용하려면 생성자 유형과 순서가 일치해야 하며 생성자는 공개되거나 적절한 액세스 권한이 있어야 합니다.
Java 리플렉션 메커니즘은 생성자를 호출합니다.
Java 리플렉션 메커니즘은 클래스에 대한 동적 액세스를 제공하여 런타임 시 클래스와 해당 멤버를 검사하고 수정할 수 있도록 합니다. 리플렉션을 통해 클래스 생성자 메서드를 호출하여 새 개체를 만들 수 있습니다.
구문:
리플렉션을 사용하여 생성자를 호출하려면 Constructor.newInstance()
메서드를 사용할 수 있습니다. 구문은 다음과 같습니다: Constructor.newInstance()
方法。其语法如下:
Object newInstance(Object... args) throws InstantiationException, IllegalAccessException, InvocationTargetException
其中:
args
:用于构造对象的实际参数列表实战案例:
我们创建一个名为 Person
的类,并提供一个带参数的构造方法:
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } }
现在,我们可以使用反射调用此构造方法:
// 创建 Class 对象 Class<?> personClass = Class.forName("Person"); // 获取带有两个参数的构造方法 Constructor<?> constructor = personClass.getConstructor(String.class, int.class); // 调用构造方法创建对象 Object person = constructor.newInstance("John", 30);
使用反射调用的对象可以像普通对象一样访问:
System.out.println(((Person) person).getName()); // 输出: John System.out.println(((Person) person).getAge()); // 输出: 30
注意事项:
newInstance()
会将该异常包装在一个 InvocationTargetException
rrreeeargs
: 객체를 구성하는 데 사용되는 실제 매개변수 목록 🎜🎜🎜🎜실제 사례: 🎜🎜🎜우리는 Person
클래스라는 파일이 있고 매개변수가 있는 생성자를 제공합니다: 🎜rrreee🎜이제 리플렉션을 사용하여 이 생성자를 호출할 수 있습니다: 🎜rrreee🎜 리플렉션을 사용하여 호출된 개체는 일반 개체처럼 액세스할 수 있습니다: 🎜rrreee🎜 🎜참고 : 🎜🎜newInstance()
는 해당 예외를 InvocationTargetException
으로 래핑하여 발생시킵니다. 🎜🎜위 내용은 Java 리플렉션 메커니즘은 생성자를 어떻게 호출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!