Java 将代码作为参数传递
我正在使用此代码显示消息:Java 将代码作为参数传递,java,android,Java,Android,我正在使用此代码显示消息: Common.getHandler().post(new Runnable(){ public void run(){ Toast.makeText(Common.getContext(), "Text...", Toast.LENGTH_SHORT).show(); } }); Common是我的一个类,getHandler()将返回在活动中创建的处理程序。这样我就可以在户外活动中举杯庆祝了。 这是一个很好的方法,它工作得很好,但我
Common.getHandler().post(new Runnable(){
public void run(){
Toast.makeText(Common.getContext(), "Text...", Toast.LENGTH_SHORT).show();
}
});
Common是我的一个类,getHandler()将返回在活动中创建的处理程序。这样我就可以在户外活动中举杯庆祝了。
这是一个很好的方法,它工作得很好,但我想知道是否有其他方法可以使代码更简洁/更短
比如:
Common.run({
Toast.makeText(Common.getContext(), "Text...", Toast.LENGTH_SHORT).show();
});
run()方法应该将作为参数传递的代码封装在Runnable中
这叫做闭包,在Javascript中是可能的
问候 这是您在Java中所能做的最好的事情。您只能传递对象(和标量),因此您必须创建一个实现Runnable的类,或者执行您现在正在做的操作,即创建一个实现Runnable的匿名对象实例。Java不是JavaScript 您的提议是不可能的,因为您无法轻松地传递方法和函数。顶部的代码可以简化为(对公共类进行适当更改): Java没有“独立”闭包;传递匿名实现是最接近的传真
使其“更短”的唯一真正方法是创建一个具体的实现并传递它——但在调用站点上这只会更短。当然,我想引入一些自定义接口,但最终没有。谢谢你指出。
Common.run(new Runnable() {
public void run() {
// your code
}
}