2013-07-29 2 views
0
public class SomeClass { 
    //Some code 
    private static InnerClass { 
    String test; 
    private InnerClass(String test) { 
     this.test = test; 
    } 

    // Using test here in some way 
    test.split("something"); //Compiler error, test might not have been initialized 
} 

Почему компилятор жалуется на это? Я инициализирую test в конструкторе. Если компилятор жалуется, это означает, что может быть способ доступа к test без прохождения через конструктор. Я попробовал это, но не повезло без размышлений. Что мне здесь не хватает?Конструктор и объекты статического внутреннего класса

+0

Является ли это ваш полный код? Или вы выбрали только его части? – Laf

ответ

6

заявление

test.split("something"); 

должен быть в исполняемом блоке (метод/конструктор/статические initilization блоки)

0

написать новый метод и переместить эту операцию в нее.

например:

private void splitTest() { 
test.split("something"); 
}