Java 同一行代码中的两条指令

Java 同一行代码中的两条指令,java,optimization,format,Java,Optimization,Format,可以在同一行代码中编写两条指令吗 我知道我能做到: if (b < -1 && element.compareTo(node.getRight().getElement()) > 0) return leftRotation(node); 是否可以将node.setLeft()和return语句放在同一行代码中?可能不行。因为setLeft的定义可能是: public void setLeft(int left) { this.left = left;

可以在同一行代码中编写两条指令吗

我知道我能做到:

if (b < -1 && element.compareTo(node.getRight().getElement()) > 0) return leftRotation(node);  

是否可以将node.setLeft()和return语句放在同一行代码中?

可能不行。因为
setLeft
的定义可能是:

public void setLeft(int left) {
    this.left = left;
}
因此,您不能返回返回方法执行结果的
void

显而易见的答案是:

{statement1;statement2;}
全部放在一行上。事实上,您可以从java文件中删除所有换行符,而它的编译过程也一样。显然,不要这样做;你会弄得一团糟

更有用的答案是:


考虑一下你的API设计。在这种情况下,节点的
setLeft
方法可能应该返回自身,而不是返回void。然后您可以编写:return
rightRotation(node.setLeft(leftRotation)(node.getLeft());
。或者,如果leftRotation和rightRotation是节点本身的方法,则更好:
return node.setLeft(node.getLeft().rotateLeft()).rotateRight()是的。你可以删除两行之间的换行符。我不知道你认为这会带来什么好处。是的,只是不要在
{
之后换行。换行符在Java中没有任何语义含义。但是你为什么要这样做呢?这就引出了一个问题……为什么?你如何定义“一行代码”?就编译器而言,回车是可选的,因此您可以将两条语句放在文件中的同一行。或者您可以编写一个方法,执行第一条语句并返回第二条语句,然后只返回对该方法的调用。这可能会使未来的维护人员感到困惑。
public void setLeft(int left) {
    this.left = left;
}