: 그것은 (AChildClass.AStaticMethod
)에서 호출 할 때 AStaticMethod
가 AChildClass
의 새로운 instace을 얻을 수 있도록자바의 정적 메서드에서 호출자 클래스의 인스턴스를 얻는 방법은 무엇입니까? 예를 들어
public class MyParentClass
{
static MyParentClass AStaticMethod()
{
//get a new childclass instace here
//modify this instance
return(ChildClassInstance);
}
}
public class AChildClass extends ParentClass {}
수 있습니까?
스택 추적을 사용하거나 예외를 던져 잡는 것과 같은 기법을 사용하여 비슷한 코드를 보았습니다. 그러나이를 수행하는 더 깨끗한 방법을 찾고 있습니다.
AStaticMethod
을 하위 클래스의 일반적인 초기화 프로그램이라고 생각하십시오.
나는 PHP에서 그랬던 것을 기억하지만 역동적 인 약한 타이핑과 언어 반영에 크게 의존하고 있습니다.
내가 할 수있는,하지만 나는 모든 자식 클래스는 클래스 이름을 변경 내 큰 초기화 방법을 추가하고, 과정을 일부 변경하는 방법에 필요할 때마다 반복해야합니다. 진정한 유지 보수의 악몽. –
@ user644718 상속을 사용하여 처리 할 수 있습니다. 실제 리엔지니어링 솔루션은 프로그램에 따라 다릅니다. –