>  기사  >  Java  >  매우 간단한 JAVA 리플렉션 튜토리얼

매우 간단한 JAVA 리플렉션 튜토리얼

黄舟
黄舟원래의
2017-02-07 10:35:491481검색

리플렉션은 동적으로 클래스를 로드하고, 객체를 인스턴스화하고, 메서드를 호출할 수 있습니다. 이제 다음 예를 들어 설명하겠습니다.

1. 클래스를 로드합니다.

Class clazz = Class.forName("java.lang.String"); //이 코드는 String 클래스의 클래스 객체를 가져옵니다. 매개변수는 패키지 이름을 채웁니다.

URLClassLoader를 사용하면 로컬 또는 원격 jar 패키지를 로드하고 loadclass 메소드를 통해 특정 클래스 객체를 가져올 수 있습니다.

2. 객체를 인스턴스화합니다.

기본 생성자를 통해 객체가 인스턴스화되면

clazz..newInstance();

매개변수화된 생성자를 사용하여 객체를 인스턴스화하려면 다음 코드를 사용할 수 있습니다.

Constructor myConstructor = myClass.getConstructor(parameterTypes);//생성자 객체를 가져옵니다.

여기서 매개변수 유형은 Class... 매개변수 유형(예: String.class, int.class 등)입니다. 그런 다음 생성자 객체를 통해 인스턴스화된 객체를 가져옵니다.

myConstructor.newInstance("xxx",123); 생성자의 특정 생성 매개변수를 채웁니다.


셋, 메소드를 호출합니다.

Method mezod = clazz.getMethod(methodName,parameterTypes); 메소드 클래스의 객체를 가져온 후, mezod의 Invoke 메소드를 통해 메소드를 실행할 수 있습니다.

mezod.invoke(obj,"xxx",123);//첫 번째 매개변수는 이 메서드의 시작 개체입니다. null이 채워지면 정적 메서드가 호출된다는 의미입니다.

해당 기사는 CSDN.NET에서 복제한 것입니다. 저작권 문제가 있는 경우 삭제를 요청하시기 바랍니다.

위 내용은 아주 간단한 JAVA 리플렉션 튜토리얼입니다. 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.