0

とにかく、チャットプログラムのようなものを作成しようとすると、誰かがこのコードを使用して新しいメッセージをチェックし、ユーザーがメッセージを送信できるようにするように言われました。

timer.schedule(new TimerTask() {

  @Override
  public void run() {
     read.readChat(line);
  }
 }, 0, 1000);

 //Wait for user input
 while(true) {
     String bar = scan.next();
 }

ここで、read.readChat(line);は別のファイルからのメッセージを表示するメソッドです。Javaはreadline両方とも次のように宣言する必要があると言っています...特に " "は変数であり、変更する必要があるためfinal、理由がわかりません。line

さらに、それらを最終として宣言した後、次のエラーが発生します。

unreported exception java.lang.Exception; must be caught or declared to be thrown
                            read.readChat(salt);

私は何が間違っているのですか?

4

2 に答える 2

2

2 番目のエラーは、メソッドが例外read.readChat(line);をスローするcheckedため、キャッチする必要があることを示しています。

Anonymous クラスでは、外部クラスで宣言されたローカル変数を使用できません inner。それらを作成するか、 (インスタンス変数)finalとして宣言します。fields

編集:

@Override
public void run() {
  try
   {
    read.readChat(line);
   }catch(Exception ex)
   {
     ex.printStackTrace();
   }
}
于 2011-10-17T04:06:45.147 に答える