Java에서 반사되는 간단한 사용

소개
먼저 실용적이지 않은 설명을 소개한다. JAVA 반사 메커니즘은 운행 상태에서 임의의 클래스에 대해 이 클래스의 모든 속성과 방법을 알 수 있다.임의의 대상에 대해 임의의 방법과 속성을 호출할 수 있다.이런 동적 정보 얻기와 동적 호출 대상 방법의 기능을 자바 언어의 반사 메커니즘이라고 부른다.
간편한 사용
반사는 자바에서 매우 흔하고 좋은 방식이다. (하지만 여러분은 그의 효율이 비교적 낮기 때문에 신중하게 사용해야 한다는 것을 알아야 한다.) 물론 자바 언어를 바탕으로 만들어진 안드로이드에서도 사용할 수 있다. 우리는 반사를 사용하여 시스템이 개방적이지 않지만 존재하는 종류를 얻을 수 있다. 그래서 그의 방법을 사용한다. 다음은 간단하게 쓰자.자바 반사를 이용하여 클래스를 가져오고 호출하는 방법의 실현

// 
String className = "com.example.test.JavaReflect";Class reflect = null;
try {  
 // java   
 reflect = Class.forName(className);  
 //   
 Object javaReflect = reflect.newInstance();  
 if(null != javaReflect) {    
  // Class stringToUp()  stringToUp ,String.class     
  Method stringToUp = reflect.getDeclaredMethod("stringToUp", String.class);    
  //     
  stringToUp.setAccessible(true);    
 // stringToUp() , ,  
  String str = (String) stringToUp.invoke(javaReflect,"java reflect test");
  System.out.println("result:"+str); 
 }
}catch (Exception e) {  
 e.printStackTrace();
}
string To Up에서 무엇을 했는지 살펴보자.

public String stringToUp(String str){  
 return str.toUpperCase();
}
사실 문자열을 대문자로 변환해서 되돌려줍니다. 자, 출력 결과를 보겠습니다.

01-02 08:09:11.959 6150-6150/com.zxf.alpha I/System.out: result:JAVA REFLECT TEST
그야말로 완벽하다.
총결산
자, 이상은 이 글의 전체 내용입니다. 안드로이드에 반사되는 응용 범위도 많습니다. 예를 들어 우리 프로젝트에 모듈이 여러 개 있을 때 모듈에서 메인 프로그램을 호출하는 방법 중 하나로 이렇게 할 수도 있고 반사로 시스템을 공개하는 방법을 호출할 수도 있지만 효율이 높지 않습니다.본고의 내용이 여러분에게 자바의 방사능을 배우거나 사용하는 데 도움이 되기를 바랍니다. 궁금한 점이 있으면 댓글을 남겨 주십시오.

좋은 웹페이지 즐겨찾기