使用它是否被认为是不好的做法Runnable
作为回调?
考虑到Runnable
旨在与线程一起使用(请参阅它的JavaDoc),我想知道这是否可以 - 或者我是否应该为此目的创建自己的接口。
我所说的是这样的:
public class KeyBinding {
public KeyBinding(KeyStroke stroke, Runnable handler) {
//...
}
}
不要使用 Runnable 作为回调;它可能会引起混乱:人们和代码质量工具有时期望它仅与线程一起使用。
我自己使用 Runnable 作为回调——我认为它似乎非常适合用作通用回调。一个月后,有人发现我的代码被剪掉了:
doneCallback.run();
他注意到doneCallback
was a Runnable
,并且调用.run()
直接导致我们的代码质量分析程序(Sonar)发出警告。那么,为了修复警告?或者因为他认为目的是创建一个线程?,他分叉了一个新线程,并调用run()
通过该线程代替。
然而,在那里分叉,破坏了东西。
为了避免混淆,现在我创建一个与线程没有任何关系的通用回调接口。我只是添加一个类Callback
用一种方法call
。我想我最好不要使用java.util.concurrent.Callback
因为那也与线程有关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)