如何确保被覆盖的方法同步
2022-09-01 17:35:33
我有一类线程安全的通用代码。
该类中的一个方法是抽象的,需要针对不同的实现重写。
我需要向其他开发人员保证或至少向其他开发人员标记此方法的所有实现都需要是线程安全的。
最好的方法是什么?
是否有关键字或注释可以达到此效果?
我已经尝试过,但不允许使用关键字组合。abstract synchronized
我有一类线程安全的通用代码。
该类中的一个方法是抽象的,需要针对不同的实现重写。
我需要向其他开发人员保证或至少向其他开发人员标记此方法的所有实现都需要是线程安全的。
最好的方法是什么?
是否有关键字或注释可以达到此效果?
我已经尝试过,但不允许使用关键字组合。abstract synchronized
你不能直接做。你可以做的一件事是让方法具体,但调用一个抽象的方法:
public synchronized final void foo() {
doFoo();
}
protected abstract void doFoo();
这样,doFoo() 将始终* 在 foo() 建立的同步下被调用。
*除非有人直接调用它,所以你应该命名并记录它,以明确他们不应该。