返回实例时设置实例变量

时间:2019-08-05 11:45:52

标签: java

只是对几乎没有想到的东西感到好奇,但我一直无法通过搜索找到答案。是否可以返回带有return关键字的实例,并在同一行中的同一行中设置变量?

例如,我尝试这样做:

public Person randomPersonHeight(Person person){
     Random r = new Random();
     return person.height = 5+(r.nextFloat()*1.5);//Imperial Measurements baby!
}

我想设置人员的身高,然后一口气将人员返回。但这并不奇怪。当然,我可以单行完成它并不重要。而且,只是不会代表任何其他东西!..但是,我发现自己想知道有什么表达或其他格式可以实现这一点。

2 个答案:

答案 0 :(得分:0)

你不能那样。

有一个常见的习惯用法,其中 setter方法返回对象本身,以使这样的事情成为可能。但是您不能仅使用语言的本机运算符来做到这一点。


当然,除非您写

 person.height = 5+(r.nextFloat()*1.5); return person;

但是,如果您让代码自动格式化程序靠近它,它可能将无法生存...

答案 1 :(得分:0)

其他答案是关于setter的,但我认为他们将您的问题误解为与编码约定有关(您应该做些什么),而如果我理解正确,您就会询问Java语言本身(您可以做什么)。

使用Java语言返回值并同时进行设置是没有问题的。

示例

class Test
{
    int sum;

    public int sum(int a, int b)
    {
        return (sum=a+b);
    }

    public static void main(String[] args)
    {
    System.out.println(new Test().sum(1,2));
    }

}