2017-01-10 1 views
1

클래스의 정적 메서드로드를 제어하는 ​​방법, 몇 가지 독립적 인 클래스 (A, B, C, D, E ..)가 있고 각각 이 클래스들 중 정적 블록을 가지고 있다면 어떻게 C 클래스의 정적 블록로드를 제어 할 수 있습니까?클래스의 정적 메서드로드를 제어하는 ​​방법

+0

정적 블록은 클래스를 처음 사용할 때 호출됩니다. 블록을 호출해야하는 순서대로 사용하십시오. –

+0

"로딩"이란 용어의 사용은 의미가 없습니다. Java에서는 * 클래스 * 만로드되며 메소드가 아니라 정적 블록이로드됩니다. 클래스는 JVM의 재량에 따라로드되며 정적 초기화 프로그램의 실행을 포함하여 처음 사용할 때 * 초기화됩니다. 클래스가 독자적으로 말했듯이, * independent * 인 경우 초기화를 더 이상 제어하려고 할 이유가 없습니다. – Holger

답변

0

Hacky 솔루션이지만 작동합니다! 당신의 클래스 A, B, C에서

은 ... 먼저로드되는 클래스에 아래 코드를 추가하여이 분야

static boolean loadMe; 

를 추가합니다. 먼저로드되는 클래스는 main() 메서드가있는 클래스이거나 응용 프로그램의 시작점 인 클래스입니다.

static { 
    boolead loaded = A.loadMe; 
    loaded = B.loadMe; 
    ...//In the order that you require 
} 
관련 문제