有人在我之前处理我的代码,创建了一些方法并将Runnable作为参数传递,更有可能:
void myMethod(Runnable runnable){ runnable.run(); }
然后从主要调用myMethod看起来像:
public static void main(String args[])
{ try
{ myMethod(new Runnable(){ public void run() { //do something...; }}); }
catch (Throwable t) { } }
因此,要向myMethod提供参数,我需要实例化实现Runnable的(在本例中为匿名)类的对象。
我的问题是:在这个例子中是否有必要使用Runnable?我可以使用任何不同的界面吗?我的意思是我可以使用单一方法创建新的界面,即
interface MyInterface{ void doThis(); }
然后改变myMethod的外观:void myMethod(MyInterface myObject){ myObject.doThis(); }
当然还有客户:
public static void main(String args[]) {
try { myMethod(new MyInterface (){ public void doThis()
{ //do something...; }}); }
catch (Throwable t) { } }
或者也许是关于Runnable的东西?!
答案 0 :(得分:5)
你可以按照你的建议绝对改变界面,但有什么意义呢?它提供MyInterface
而不是Runnable
的实例有什么好处? Runnable
的一个优点是,将来可以更容易地使代码成为多线程,因为执行线程的大多数API(例如Executor)都可以使用Runnable
的实例}。