2016-07-26 3 views
1

패키지 내에서만 볼 수있는 숨겨진 클래스 (@hide로 표시됨)의 메소드를 재정의해야합니다. 그것을 연장 할 방법이 있습니까? 그 방법은 ReplacementSpan 아주 잘 작동하지 않기 때문에자바 숨겨진 클래스를 확장하는 방법

은보다 구체적으로, 나는 android.widget.EditorgetNextCursorOffset()를 오버라이드 (override) 할 필요가있다.

+0

편집기의 모든 메서드와 함께 자신 만의 데코레이터를 사용하고 getNextCursorOffset을 사용하지 않는 이유는 무엇입니까? – SMA

+0

@SMA Editor.java를 복제 하시겠습니까? 그것은 5K + 코드 라인을 가지고 있기 때문에 미칠 것입니다. – mljli

+0

복제 안 함. 새로운 클래스에서 편집기를 작성하고 다른 메소드의 호출을 Editor 인스턴스에 위임하는 반면 getNextCursorOffset에 대해서는 자신의 논리를 구현할 것이다. – SMA

답변

0

프로젝트 내에 동일한 패키지 android.widget을 정의 할 수 있습니다. 그런 다음 확장 할 수 있습니다.

public class ProjectSpecificEditor extends Editor { 
    // constructors et all 
    public int getNextCursorOffset() { 
     //... 
    } 

} 

그러나 권장하지 않습니다. 나는. 다음 버전의 프레임 워크는 일부 클래스/메소드 서명을 변경할 수 있습니다. 그렇다면 자신을 비난 할 수 있습니다.

+0

감사, Tamas! 이런 식으로 시도하지 않았습니다. – mljli

+0

죄송합니다. 테스트하지 않았습니다. 심지어 같은 패키지를 정의하더라도 Android Studio는 여전히 '편집기'를 해결할 수 없습니다. 구성해야 할 것이 있습니까? – mljli

+0

좋은 교차 점검은 명령 줄에서 컴파일 할 수 있는지 여부입니다. –

관련 문제