コンパイラーは、名前(シンボル)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");
}
}