为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇潇雨雨 2021-04-09 17:19:37
有什么方法可以在Java中声明这样的静态变量,例如,通过它们我可以在初始化后返回java对象我们可以像这样在python中做到这一点schedule.every(10).minutes.do(job)在哪里,通过调用every(10)。分钟我只是初始化分钟变量。是否有可能在Java中做这样的事情?像这样的东西:Myclass.function().variable.anothorFunction();编辑:就方法而言,我也可以像这样在Java中轻松地做到这一点。public static MyClass function(){      return new MyClass();}
查看完整描述

2 回答

?
qq_花开花谢_0

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


查看完整回答
反对 回复 2021-04-28
?
收到一只叮咚

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();


查看完整回答
反对 回复 2021-04-28
  • 2 回答
  • 0 关注
  • 236 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信