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コンパイラが不平を言っている場合は、コンストラクタを経由せずにアクセスする方法がある可能性があることを意味します。私はそれを試みましたが、熟考なしでは運がありません。ここで何が欠けていますか?

4

2 に答える 2

6

声明

 test.split("something");

実行可能ブロック (メソッド/コンストラクター/静的初期化ブロック) にある必要があります

于 2013-07-29T16:06:36.980 に答える
0

新しいメソッドを作成し、この操作をそれに移動します。

元 :

private void splitTest() {
test.split("something");
}
于 2013-07-29T16:53:52.333 に答える