一尘不染

如何确保重写的方法是同步的

java

我有一类通用的代码是线程安全的。

该类中的方法之一是抽象的,需要针对不同的实现重写。

我需要确保或至少向其他开发人员标记此方法的所有实现都必须是线程安全的。

做这个的最好方式是什么?

是否有关键字或注释可达到此目的?

我已经尝试过了,abstract synchronized但是不允许使用关键字组合。


阅读 215

收藏
2020-12-03

共1个答案

一尘不染

您不能直接这样做。您可以做的一件事是将方法具体化,但是调用一个抽象方法:

public synchronized final void foo() {
    doFoo();
}
protected abstract void doFoo();

这样,doFoo()将始终*在foo()建立的同步下被调用。

*除非有人直接调用它,否则您应该命名并记录它以明确表明他们不应该这样做。

2020-12-03