2016-12-13 4 views
-1

私はいくつかのメソッドが呼び出されるべきではないことを示すためにJavaでいくつかの良い方法があるかどうか知りたいですか?私はもっ​​と大きなチームで働いていると思っています。そして、このメソッドは決して呼び出されないので、テストしようとはしません。おそらくアサートはいいアイデアですか?マークメソッドを使用しないでください

コンテキスト:私はJavaでReactiveXを使用していますが、Observableは停止されず、onErrorとonNextを呼び出すことができますが、onCompletedは呼び出されませんが、ObserverはSubscriberを拡張して@Override onCompletedにする必要があります。

+2

@Deprecated注釈。 – Kon

+6

メソッドを削除するか、UnsupportedOperationExceptionをスローすることはできませんか? – BretC

+0

しかし、@Deprecatedは、私が思うと後方互換性のための古いメソッドで使用するべきです。それで、私はこのメソッドがプログラムでは呼び出されないことを伝える良い方法を求めています。 –

答えて

1

他の人がメソッドを呼び出さないようにするには、適切なjava docを使用して@Deprecated注釈を使用します。
呼び出し元への指示ですが、依然としてメソッドを呼び出すことができます。

+0

私は私の質問の下でコメントに書いたので、私はそのような状況で廃止されたものを使用するのが嫌いです –

2

@Deprecatedは最も標準的なもので、UnsupportedOperationExceptionを投げることは、多くの同様のケースで行うべき妥当なことです。

多型性のため、呼び出し側は実行時まで呼び出しているObserverの具体的な型をよく知っていない可能性があるので、注釈は役に立ちません。

しかし、説明した場合、onCompleted()の空の実装と、例外をスローしないことを宣言するテストを記述する必要があります。 Observableが生産を止めることは決してありませんが、ある日は例外をスローするのは妥当ではないようです。

+0

私はObservableと契約していないことを確認するために、生産要素の生産を停止する。もし誰かがそれを変更すると、テストは行かず、誰かが契約を中断しようとしたことを知ります。 –

関連する問題