2 回答
TA贡献1835条经验 获得超7个赞
我首先假定python代码段有效,因为python具有生成器和yield。哪个Java没有。在Java中,方法仅返回一个值,并且仅返回一个值。在JVM平台上可以得到的最接近的是Scala提供的循环/收益结构。或者,也许是Java 8 Streams。
但是,鉴于给出的评论,我仔细查看了您的示例,最终找到了这个python模块。整个过程归结为schedule.every()
返回一个调度程序对象,该对象根据通过“流利”接口传递的持续时间简单地调用传递给它的函数 job
。
您可以在Java中做非常相似的事情,在Java中将一个static
方法放在某个类上,该方法只是创建一些Scheduler类的实例,然后例如您传递一个lambda / method引用。
但是,当然,Java也具有内置的机制来执行此操作,例如ScheduledExecutorService。
TA贡献1821条经验 获得超4个赞
假设schedule是对象引用而不是类引用,则可以this在方法完成后返回,从而轻松地做到这一点。请参阅以下简化示例:
public class MyClass {
public OtherClass variable;
public MyClass function(){
// do stuff
return this;
}
}
public class OtherClass {
public void anotherFunction(){
// do other stuff
}
}
然后可以这样使用:
MyClass myObj = ...;
myObj.function().variable.anotherFunction();
更好的方法是直接返回variable自身:
public OtherClass function(){
// do stuff
return variable;
}
然后可以这样使用它:
myObj.function().anotherFunction();
添加回答
举报