2013-07-10 1 views
2

코드 조각은 동일한 논리를 수행하지만 두 개의 서로 다른 진입 점이 있습니다. 결과적으로 한 엔트리 포인트의 경우 System.getProperty를 사용해야하고 다른 엔트리 포인트의 경우 this.getProperty를 사용해야합니다. 나는 일시적으로 그리고 편리하게 시스템을 이것으로 대체하거나 그 반대의 경우로 하나의 경우에 두 개의 다른 진입 점에 대한 논리를 복제 할 필요가 없도록하는 것이 이상적입니다.java에서 System 클래스를 바꾸는 방법은 무엇입니까?

+0

부호를 보여주십시오 – sunrize920

+0

@ sunrize920 나는이 경우에 충분한 질문을 던집니다. OP는 엔트리 포인트를 기반으로 객체의'System' 정적 메소드와 메소드를 동적으로 전환하기를 원합니다. – hexafraction

+0

@hexafraction 예. 고맙습니다. – gal

답변

0

this.getProperty(은 필요에 따라 System.getProperty( 정적 메서드를 호출 할 수 있습니다. 부울을 useSystem으로 만들고 this 필드로 만듭니다. 다음과 같이

그런 다음, this.getProperty(을 정의 속성을 가져올 때

String this.getProperty(String arg){ 
    if useSystem return System.getProperty(arg); 
    else{ 
     //your logic for returning a property 
    } 
} 

항상 this.getProperty(를 호출합니다. 진입 점에 따라 this.useSystemtrue 또는 false으로 설정할 수 있습니다.

+0

이것은 훌륭한 구현입니다. 감사합니다. – gal

0

당신은 다른 if 문 간단한을 사용할 수 있습니다

String property = isEntryPoint ? System.getProperty() : this.getProperty(); 

이 isEntryPoint 사용되는 엔트리 포인트를 결정하는 부울 플래그가 있다고 치죠.

관련 문제