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條經驗 獲得超5個贊
假設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();
添加回答
舉報