onmystatic()
은 정적이므로 어떤 함수도 정적 (또는 일부 객체의 인스턴스 메소드)이어야하므로 printCurrentType()
도 정적이라고 가정합니다. 정적 메소드를 오버라이드 (override) 할 수 없기 때문에, 형태는 일정하고 그냥 쓸 수 있습니다 :
class User {
static onmystatic() {
printCurrentType();
}
static printCurrentType() {
print(User);
}
}
당신이 그것을 호출 한 정적 방법을 포함하는 클래스의 유형을 인쇄 몇 가지 일반적인 방법으로 printCurrentType()
을 원한다면 에서, 잘 ... 그것은 훨씬 어려운 과제입니다. 가장 쉬운 대답은 그렇게하려고 매개 변수로 클래스를 통과하지 못한된다
class User {
static onmystatic() {
printCurrentType(User);
}
}
printCurrentType(Type type) {
print(type);
}
복잡한 대답은 당신이 예외를 던져 스택 추적을 분석하고, 몇 가지 규칙에 의해 결정을 시도 할 수 있다는 것입니다 어떤 클래스를 인쇄해야합니다. 나는 이것을 독자에게 연습으로 남겨 둘 것이다.
당신은 좋은 선생님해야합니다 :) – Freewind