那么.... Java是否支持运算符重载?

 钓鱼翁玩围脖 发布于 2023-01-30 17:41

我花了几个小时研究这个,我仍然很困惑.

我和许多其他人一样,在Google上搜索了这个并发现了这个SO线程.

然而,最近,我的一个编程课程的学生告诉我这不是真的,事实上,教练验证了它.见鬼,整个班级都听到了,没有人质疑他.他从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); 
}

并告诉我它确实是Java.我没有JS的经验无法分辨,他离开了(现在),但我尝试将它放入我的IDE(IntelliJ),并且我被编译器错误攻击了.我甚至不知道从哪里开始修理它们,但主要的是它cannot resolve symbol "operator".

我不是在寻找有关Java内置运算符重载的任何讨论,我正在寻找关于Java中的用户是否可以自己重载运算符的确定答案.

1 个回答
  • 确定的答案是否定的,Java不支持运算符重载,除了String类型.但更重要的是,对您的问题的更大答案是,您应该查看单个文档,Java语言规范或JLS,它将回答这个以及任何其他类似的关于Java包含或不包含的内容的问题.不要与任何人讨论maybes或ifs.去寻找自己,并为自己满足除了神奇的String类型之外没有Java的运算符重载这样的东西.它就在JLS中,这就是它的用途.

    2023-01-30 17:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有