0

明示的な初期化メソッドと実際の作業を行う他のいくつかのメソッドを持つクラスがあります。

public class Worker {

    public void init(Context context) { /* ... */ };

    public void doWork() { /* ... */ };
}

実際のInit作業を行う前にメソッドを呼び出す必要があります。これは、クラスとメソッドの説明に記載されています。

DoWork呼び出しの前に初期化が実行されなかった場合、メソッドから例外をスローしたいと思います。この場合の正しい例外タイプは何でしょうか?UnsupportedOperationExceptionIllegalStateExceptionまたは何か他のもの?

4

1 に答える 1

3

IllegalStateException。ただし、理想的には、オブジェクトが常に有効な状態になるようにしてください。:-)この場合、Context個別の「init」関数ではなくコンストラクターで要求することにより、次のようになります。

public class Worker {

    // Note this is a constructor now, not a method
    public Worker(Context context) {
        /* ... */
    }

    public void doWork() {
        /* ... */
    }
}
于 2012-07-01T15:32:41.107 に答える