Я потратил часы, исследуя это, и я все еще очень смущен.Итак .... поддерживает ли 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#, но я не эксперт в этом. Основная проблема, которую я хотел бы получить, от ее получения до компиляции, - это использование «Список», «Главная» и «Печать». Java не имеет класса «List» в API Collections, он имеет интерфейс, который требует, чтобы метод 'length' выглядел как' length() ' – MadProgrammer
- это действительно java? – Baby