永远不应该使用标记方法

时间:2016-12-13 16:22:46

标签: java reactivex

我想知道在java中是否有一些好的方法来表明永远不应该调用某些方法?我想,如果我和更大的团队合作,并告诉大家这种方法永远不会被调用,所以不要试图测试它。也许断言是个好主意?

上下文:我在java中使用ReactiveX,我的Observable永远不会被停止,它只能调用onError和onNext,但是onCompleted永远不会被调用,但是我的Observer扩展了Subscriber所以我需要@Override onCompleted。

2 个答案:

答案 0 :(得分:2)

@Deprecated是最接近标准的东西,在许多类似的情况下抛出UnsupportedOperationException是合理的事情。

另请注意,由于多态性,调用者可能不知道他们在运行时调用的Observer的具体类型,因此没有注释可以帮助。

但是,在你所描述的情况下,我认为你应该写一个onCompleted()的空实现和一个只是断言它不会抛出异常的测试。虽然你已经决定Observable永远不会停止生产,但如果有一天它会抛出异常似乎是不合理的。

答案 1 :(得分:1)

如果您不希望其他人调用该方法,请使用正确的java doc使用@Deprecated注释。
请注意,它只是对调用者的指示,尽管他们仍然可以调用该方法。