return 对象实例而不是 java 中的函数 return(隐式参数)

return object instance instead of function return in java (implicit parameter)

我想设置一个相对于另一个组件的矩形位置,但有偏移。我尝试了以下方法:

rndRect.setLocation(StartButt.getLocation().translate(buttW, 2));

但是翻译returns无效,所以不接受作为参数(需要一个Point)。

有没有办法在不创建辅助变量的情况下在同一条语句上执行此操作?

没什么重要的,只是好奇。

没有。如果 translate 采用一个可变变量,该变量已更改但未返回,那么您将需要声明一个变量以传递给 translate,然后再将其传递给 setLocation.

或者,您可以编写自己的方法来获取位置并创建 returns 点:

private Point translate(Location location, Point origin, int distance) {
    Point result = (Point)origin.clone();
    location.translate(result, distance);
    return result;
}

rndRect.setLocation(translate(StartButt.getLocation(), buttW, 2));

有趣的是,关于使用临时变量来临时保存值是个好主意,还是创建更少、更复杂的语句来避免临时变量是个好主意,意见不一(很多)。就我个人而言,我发现命名良好的临时变量(和简短的简单方法)使阅读代码变得更加容易,因为在阅读每条语句时,您的头脑中没有什么可记住的。代码读起来更像是一个故事,而不是一个谜题。根据我的经验,随着编码人员在他们的职业生涯中变得更好,他们会创建更多更简单的 类、方法、语句和变量来解决每个问题。