我花了数小时研究这个,我仍然很困惑。那么....是否支持Java运算符重载?
我和许多其他人一样,在Google上搜索了这个文件,结果发现this SO thread。
但是,最近,我的一门编程课程的一位学生告诉我,这不是真的,事实上,教官证实了这一点。地狱,整个班级都听到了,没有人争辩他。 He offered this link from Java.net as proof。
我对他立刻说,“这看起来像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);
}
,并告诉我,这是确实的Java。我没有JS的经验,不知道,他逃脱了(现在),但我试图把它放到我的IDE(IntelliJ)中,并因编译器错误而受到攻击。我甚至不知道从哪里开始修复它们,但最主要的是cannot resolve symbol "operator"
。
我不是在寻找这里的任何讨论Java's built-in operator overloading,我正在寻找在Java的用户是否一个明确的答案可以重载运营商自己。
java.net链接不会去java.net – AntonH
看起来更像C#,但我并不是专家。我想要解决的主要问题是使用'List','main'和'print'来实现编译。 Java在Collections API中没有'List'类,它有一个接口,它需要'length'方法看起来像'length()' – MadProgrammer
这真的是java吗? – Baby