Java
에서 추상 클래스의 정적 멤버는 모든 하위 클래스를 통해 상속됩니다. 이것은 스칼라에서이 Java 메커니즘을 구현하는 방법은 무엇입니까?
abstract class TopThing{
public TopThing next;
public TopThing(TopThing tt){
this.next = tt
}
private static HashTable<String, TopThing> someTable = new HashTable<String,TopThing>();
protected void add(String name) {
someTable.put(name, this);
public static Parent forName(String name) {
return someTable.get(name) ;
}
}
class SomeSpecific extends TopThing {
public final String name;
public SomeSpecific (String name, TopThing tt) {
super(tt);
this.name = name;
this.add(name);
}
처럼 스칼라, 에 나는 위의 사용 동반자 목적을 달성하기 위해 알고있는 유일한 방법을 쓰기 처음입니다,하지만이 경우
- 수 작동하지 않는 것 같다 동반자 개체는 개인 정적 테이블을 저장합니까? (그렇지 않습니다 ...)
- 컴패니언 개체에서 테이블을 선언 할 수 있다면 컴패니언 클래스에서 참조한 이 될 수 있습니까? (그렇지 않습니다 ...)
add
메서드에서 서브 클래스의 인스턴스를 참조하여 테이블에 삽입 할 수 있습니까? (질문은add
메서드에 대해서도this
임)- 스칼라에서는이게 무슨 좋은 습관입니까? 질문 1에 대한
은 "나는 그것을 대답하는 방법을 알고하지 않습니다." Q 셔츠를 입고 싶습니다. 가급적이면 lolcat. 또한, 글 머리 기호 # 4에 답하기 위해 +1 하겠지만 someTable이 theTable이어야한다는 것을 제외하고는 다른 응답과 마찬가지로 생각합니다. –
표를 특성에 넣으면 하나의 _per instance_가 작성되며 Java 코드의 _static_ 테이블과 동일한 것은 아닙니다. – DaoWen