我已经花了几个小时研究了这一点,但我仍然很困惑。
i,与许多其他人一样,在Google上搜索了此信息,并找到了此线程。
最近,我的一个编程课程中的一名学生告诉我,这不是事实,实际上,教练对此进行了验证。地狱,整个班级都听到了,没有人争夺他。他从java.net提供了此链接作为证明。
我立即对他说:"看起来像JavaScript",但他指出了这一部分:
class User {
List roles;
User() {
roles = new List();
}
operator +(Role newRole) {
this.roles.add(newRole);
}
}
main() {
User alice = new User();
Role adminUser = new Role("TIMESHEET_ADMIN", 3);
alice + adminUser;
print(alice.roles.length);
}
告诉我确实是爪哇。我在JS没有经验无法分辨的经验,他现在就逃脱了,但是我尝试将其放入我的IDE(Intellij)中,而我遭到编译器错误的袭击。我什至不知道从哪里修复它们,但主要的是cannot resolve symbol "operator"
。
我不是在这里寻找有关Java内置运算符超载的任何讨论,我正在寻找有关Java用户是否可以自行超载运算符的确定答案。
确定的答案是否,除了字符串类型外,Java不支持操作员超载。但更重要的是,对您的问题的更大答案是,您应该查看一个文档,Java语言规范或JLS,这些文档将回答此问题以及有关Java所包含的内容或其他类似的问题。不要与任何人辩论有关Maybes或Ifs的辩论。去寻找自己,并为自己满意,除了神奇的字符串类型外,没有操作员过载的东西。这就是JLS中的全部,这就是它的目的。