コンパイラーは、名前(シンボル)output
が、それを使用するスコープ(およびそれを囲むスコープ)で定義されていないことを通知します。定義に基づく
PrintWriter output = new PrintWriter(new FileWriter(args[1]));
関数で定義output
しているようですmain()
が、クラスで使用したいのですが、クラス内でのみ定義されTestClass
ているため無効です。output
main()
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");
}
}