자바 정적 이름 바꾸기를 지원하지 않는 클래스를 확장 할 수 있습니다. 하나의 아이디어는 문제의 객체를 새로운 클래스 이름으로 서브 클래 싱하는 것입니다 (그러나 특정 부작용/제한 때문에 좋은 생각이 아닐 수도 있습니다. 예를 들어, 대상 클래스에 최종 수정자가있을 수 있습니다.) 허용되는 경우 코드가 명시 적 유형 검사 getClass()
또는 등 당신은 스칼라에서이 작업을 수행 할 수 있습니다
class MyApp {
public static void main(String[] args) {
ClassToRename parent_obj = new ClassToRename("Original class");
MyRenamedClass extended_obj_class_renamed = new MyRenamedClass("lol, the class was renamed");
// these two calls may be treated as the same
// * under certain conditions only *
parent_obj.originalFoo();
extended_obj_class_renamed.originalFoo();
}
private static class ClassToRename {
public ClassToRename(String strvar) {/*...*/}
public void originalFoo() {/*...*/}
}
private static class MyRenamedClass extends ClassToRename {
public MyRenamedClass(String strvar) {super(strvar);}
}
}
(다른 대답에서 적응 아래 예)를 사용 이처럼 :.. 수입 java.util의 {ArrayList에는 => JavaList} – bartektartanus