2012-05-05 3 views
2

StringTemplate에서 동적으로 생성 된 함수를 통해 Java 클래스의 함수를 호출 할 수 있습니까? 예를 들어문자열 템플릿에서 동적 함수 호출

는, 다음은 ..의 값이 "룸", "바닥", "센터"가 될 수있는 세 가지 기능

public class RegionManager { 

    public static List<String> getCenter(){ 
     return somelist; 
    } 

    public static List<String> getFloor(){ 
     return somelist; 
    } 

    public static List<String> getRoom(){ 
     return somelist; 
    } 

} 

이제 내 문자열 템플릿 파일이 $CS.name$ 포함

와 자바 클래스입니다.

값을 기준으로하여, 나는 function (getRoom(), getFloor(), getCenter() 일 수 있음)을 호출하려고합니다. 유의할 점은 String 템플리트 파일을 작성할 때 어떤 함수가 호출 될지 알 수 없습니다.

+0

알고 싶습니다. 왜이 질문에 답합니까? – Pankesh

+0

https://stackoverflow.com/a/49125672/2158970 – Yuraj

답변

3

정적 함수를 호출 할 수 없습니다. 객체에 대해서만 getter를 호출 할 수 있습니다.

2

이미 언급했듯이 템플릿에서 정적 함수를 호출 할 수 없습니다. 그러나, 당신의 요구 사항을 도와 줄 수있는 또 다른 흥미로운 메커니즘이 있습니다.

StringTemplate 라이브러리에는 사용자 정의 Renderers 메커니즘이 있습니다.

입력 및/또는 잠재적 인 형식 등을 기반으로 정적 방법을 호출하는 렌더러를 빌드 할 수 있습니다.

<your_item; format="your_format">

나는 그 문제를 해결하는 데 도움이되기를 바랍니다. 그것은 다른 템플릿에서 많은 도움이되었습니다.

+0

두 링크가 모두 고장났습니다./가입해야합니다. –