옛글/안드로이드 프로그래밍

Java static method in parent class don't get sub class name

ShakeJ 2013. 10. 28. 21:16
반응형



 static method in parent class don't get sub class name.


 부모 클래스에서 static메서드 내에서 자식의 클래스 이름을 가져오는 것은 불가능합니다. 

그 이유는, 정적으로 선언 될 경우 instance가 아닌, 해당 class에 속하게 되기 때문입니다.


정적으로 선언 될 경우 Class가 Load될 때 생성이 되게 됩니다. 때문에 instance와의 assosiate가 불가능합니다.


다시 정리하면 static을 통해 생성된 class 혹은 변수나 함수는 class가 생성될 때 메모리에 자동적으로 생성이 됩니다. 때문에 instance를 가지고 있는 객체에 접근이 불가능합니다. 반대의 경우가 가능한 이유는 instance에서 static에 접근을 할때에는 이미 메모리에 올라간 상태이기 때문에 가능합니다.


 다른 방법으로는,  


 SubClass에 


 public String getClassName(){

    return getClass().getName();

 } 


 을 통해 호출하거나, 

 ( 대부분의 방법은 위의 방법으로 나와있으나, 상속받은 클래스들이 많을 경우 모든 클래스에 다 붙여주어야 하므로, 아래와 같은 방법을 사용해보았습니다. )


 ParentClass에서 





반응형