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));
有趣的是,关于使用临时变量来临时保存值是个好主意,还是创建更少、更复杂的语句来避免临时变量是个好主意,意见不一(很多)。就我个人而言,我发现命名良好的临时变量(和简短的简单方法)使阅读代码变得更加容易,因为在阅读每条语句时,您的头脑中没有什么可记住的。代码读起来更像是一个故事,而不是一个谜题。根据我的经验,随着编码人员在他们的职业生涯中变得更好,他们会创建更多更简单的 类、方法、语句和变量来解决每个问题。
我想设置一个相对于另一个组件的矩形位置,但有偏移。我尝试了以下方法:
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));
有趣的是,关于使用临时变量来临时保存值是个好主意,还是创建更少、更复杂的语句来避免临时变量是个好主意,意见不一(很多)。就我个人而言,我发现命名良好的临时变量(和简短的简单方法)使阅读代码变得更加容易,因为在阅读每条语句时,您的头脑中没有什么可记住的。代码读起来更像是一个故事,而不是一个谜题。根据我的经验,随着编码人员在他们的职业生涯中变得更好,他们会创建更多更简单的 类、方法、语句和变量来解决每个问题。