3

我知道 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 将不支持运算符重载,这是否违背了过去的逻辑?

4

0 回答 0