如何在Java中初始化变量时返回对象?

有什么方法可以在Java中声明这样的静态变量,例如,通过它们我可以在初始化后返回java对象


我们可以像这样在python中做到这一点


schedule.every(10).minutes.do(job)

在哪里,通过调用every(10)。分钟我只是初始化分钟变量。


是否有可能在Java中做这样的事情?


像这样的东西:


Myclass.function().variable.anothorFunction();

编辑:


就方法而言,我也可以像这样在Java中轻松地做到这一点。


public static MyClass function(){

      return new MyClass();

}


潇潇雨雨
浏览 237回答 2
2回答

qq_花开花谢_0

我首先假定python代码段有效,因为python具有生成器和yield。哪个Java没有。在Java中,方法仅返回一个值,并且仅返回一个值。在JVM平台上可以得到的最接近的是Scala提供的循环/收益结构。或者,也许是Java 8 Streams。但是,鉴于给出的评论,我仔细查看了您的示例,最终找到了这个python模块。整个过程归结为schedule.every()返回一个调度程序对象,该对象根据通过“流利”接口传递的持续时间简单地调用传递给它的函数 job。您可以在Java中做非常相似的事情,在Java中将一个static方法放在某个类上,该方法只是创建一些Scheduler类的实例,然后例如您传递一个lambda / method引用。但是,当然,Java也具有内置的机制来执行此操作,例如ScheduledExecutorService。

收到一只叮咚

假设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();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java