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

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

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

但是translate返回void,因此它不作为参数接受(需要Point)。

有没有办法在同一条语句上做而不创建辅助变量?

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

sbsm_001 回答:返回对象实例而不是Java中的函数return(隐式参数)

不。如果translate接受了一个可变的变量,但该变量已更改但未返回,则您需要声明一个变量以传递给translate,然后将其传递给setLocation

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

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

有意思的是,对于让临时变量临时保存值还是创建较少的避免临时变量的更复杂的语句是一个好主意,意见存在很大差异。我个人发现,命名良好的临时变量(以及简短的简单方法)使阅读代码变得更加容易,因为在阅读每个语句时,您不必再费神思。该代码往往读起来像一个故事,而不是一个谜。以我的经验,随着程序员在职业生涯中的进步,他们创建了更多,更简单的类,方法,语句和变量来解决每个问题。

本文链接:https://www.f2er.com/2909772.html

大家都在问