我知道 Java 不支持运算符重载,但似乎其他语言中的一些运算符可能会使 Java 受益。
可能我最喜欢的例子是.?
运算符。.?
对象的成员仅在对象为非 null时才能访问:
public void example(String arg)
{
if(arg != null && arg.equals("quit"))
...
}
可以缩短为
public void example(String arg)
{
if(arg.?equals("quit"))
...
}
该.?
运算符(至少恕我直言)易于阅读,并消除了一些有时会损害代码可读性的额外代码。在某些代码中,可能会对对象或参数的 null 状态进行多次检查,并可能导致对整个代码块进行不必要和过多的缩进。
显然,这不会是革命性的变化,但.?
可以普遍适用于Object
我所见的所有子类。我错了吗?如果现在采用 Java 将不支持运算符重载,这是否违背了过去的逻辑?