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