オーバーライドされたメソッドの1つのアプリケーションに対して、このGUIを作成しましたactionPerformed
command
にfinal
を挿入する必要があります。この変数は内部クラスで使用されるためです。この問題を回避する方法はありますか?最終的な文字列変数の使用を避ける
@Override
public void actionPerformed(ActionEvent e)
{
final String command = e.getActionCommand();
if(command.equals("add"))
{
new Thread(new Runnable(){
@Override
public void run()
{
// ... code skipped ... //
ous.writeObject(command);
// ... code skipped ... //
}
}).start();
}
else if(command.equals("remove"))
{
new Thread(new Runnable(){
@Override
public void run()
{
// ... code skipped ... //
ous.writeObject(command);
// ... code skipped ... //
}
}).start();
}
}
私は、コードの先頭に
String command = null;
を宣言する問題を解決しようとしました。
問題は何ですか? 「final」と入力する必要がありますか? :)あなたは精巧にできますか? –
あなたのコードは[SSCCE](http://sscce.org/)を確認していません。 – Lion
あなたがしようとしているものに対して新しい 'Thread'インスタンスを作成するのではなく、代わりに' SwingWorker'を使用するか、EDTで 'emptyTextField'を呼び出してください。さらに、スレッド内のテキストフィールドの値を読み取ることは、EDTでも発生するはずです。そして最後に、あなたのストリームを閉じることは 'finally'ブロックで起こるはずです – Robin