2

メインメソッドにこれがある場合:PrintWriter output = new PrintWriter(new FileWriter(args[1]));

これを別の方法で:output.println(currentLine);

そしてimport java.io.*;明らかに、

なぜ私が得ているのか誰かが知っていますか

cannot find symbol
symbol  : variable output
location: class TestClass
        output.println(currentLine);
4

1 に答える 1

2

コンパイラーは、名前(シンボル)outputが、それを使用するスコープ(およびそれを囲むスコープ)で定義されていないことを通知します。定義に基づく

PrintWriter output = new PrintWriter(new FileWriter(args[1]));

関数で定義outputしているようですmain()が、クラスで使用したいのですが、クラス内でのみ定義されTestClassているため無効です。outputmain()

main()で定義されていると仮定すると、クラスでTestClass定義outputし、その値をで割り当てて、main()後でクラス内で使用できます。

public class TestClass {
  PrintWriter output;
  public void write(String currentLine) {
    output.println(currentLine);
  }

  public static void main(String[] args) {
    TestClass tc = new TestClass();
    tc.output = new PrintWriter(new FileWriter(args[1]));
    tc.write("Sometext");
  }
}
于 2012-04-27T11:08:25.637 に答える