이 기사에서는 Java 반사를위한 간단한 구현 방법에 대해 설명합니다. 참조를 위해 공유하십시오. 특정 구현 방법은 다음과 같습니다.
코드 사본은 다음과 같습니다. 패키지 반사;
import java.io.file;
import java.io.fileInputStream;
import java.io.filenotfoundException;
import java.io.fileoutputStream;
import java.io.ioexception;
java.util.properties import;
인터페이스 과일 {
공개 초록 void eat ();
}
클래스 애플은 과일을 구현 {
공개 void eat () {
System.out.println ( "Apple Apple");
}
}
클래스 오렌지는 과일을 구현합니다 {
공개 void eat () {
System.out.println ( "Orange");
}
}
클래스 init {
public static properties getPro ()는 filenotFoundException, ioException {
속성 pro = 새로운 속성 ();
파일 f = 새 파일 ( "fruit.properties");
if (f.exists ()) {
System.out.println ( "구성 파일이 있습니다!");
// 구성 파일에서 키 값 쌍을 읽습니다
pro.load (새 FileInputStream (f));
}또 다른{
System.out.println ( "구성 파일 없음!");
Pro.SetProperty ( "Apple", "Reflect.Apple");
Pro.SetProperty ( "Orange", "Reflect.orange");
Pro.Store (새 파일 아웃 PutStream (F), "Fruit Class");
}
리턴 프로;
}
}
클래스 팩토리 {
공개 정적 과일 getinstance (String ClassName) {
과일 f = null;
노력하다 {
// 반사를 통해 과일 인스턴스 객체를 가져옵니다
f = (fruit) class.forname (className) .newinstance ();
} catch (InstantiationException e) {
e.printstacktrace ();
} catch (불법 행위 e) {
e.printstacktrace ();
} catch (classNotFoundException e) {
e.printstacktrace ();
}
반환 f;
}
}
공개 클래스 안녕하세요 {
public static void main (String [] args) {
노력하다 {
속성 pro = init.getPro ();
과일 f = 팩토리.
if (f! = null) {
위업() ;
}
} catch (filenotfoundException e) {
// TODO 자동 생성 캐치 블록
e.printstacktrace ();
} catch (ioexception e) {
// TODO 자동 생성 캐치 블록
e.printstacktrace ();
}
}
}
결과는 다음과 같습니다.
구성 파일이 있습니다!
사과를 먹어
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.