有什么方法可以在java中声明这样的静态变量,例如,通过它们我可以在初始化后返回java对象
我们可以像这样在python中完成
schedule.every(10).minutes.do(job)
在哪里,通过调用every(10)。分钟我只是初始化分钟变量。
是否也可以在Java中执行此类操作?
类似的事情:
Myclass.function().variable.anothorFunction();
编辑:
就方法而言,我也可以像这样在Java中轻松地做到这一点。
public static MyClass function(){
return new MyClass();
}
答案 0 :(得分:3)
我首先假定python代码段有效,因为python具有generators and yield。哪个Java没有。在Java中,一种方法仅返回一个值。在JVM平台上可以得到的最接近的是Scala提供的loop/yield构造。 或者,也许是Java 8 Streams。
但是鉴于评论,我仔细看了看您的示例,得出了这个Python module。整个过程归结为schedule.every()
返回一个调度程序对象,该对象根据通过“流利”接口传递的持续时间简单地调用传递给它的功能 job
。 / p>
您可以在Java中做类似的事情,在某个类上放置一个static
方法,该方法只是创建一些Scheduler类的实例,然后例如传递lambda / method引用。
但是,当然,Java也具有内置的机制来执行此操作,例如ScheduledExecutorService。
答案 1 :(得分:0)
假设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();