我知道在C++中你可以像重载函数一样重载一个运算符。与C++中的函数一样,您必须指定一个返回值:在这里,我将operator+作为一个返回int的函数重载。但是我发现当我重载一个类型并给它一个返回值时,我得到了error: return type specified for 'operator int'。struct A {
void operator int() {} /
在Java1.8中,以下lambda表达式符合Runnable和Callable功能接口: throw new RuntimeException("FIXME");不过,如果我使用单参数方法将其提交给,而忽略返回值(即没有可用的类型推断信息),则在编译时选择,除非我将lambda显式地转换为Runnable。在上述情况下,编译器如何在重载方法之间进行选择,前提是Runnable和Callable不共享任何公共层次结构,并且在这里不适用大多数特定的类型规则?
我注意到Java反射支持对基本类型的字段的访问,例如boolean或int,而不需要装箱:
public final class Field extends AccessibleObject implements当它与具有原始返回值的方法一起使用时,这将强制装箱。我想知道为什么还没有人支持这一点。它是不是没有被要求,或者是有严重的问题阻止它?