gpt4 book ai didi

java - 那么...Java支持运算符重载吗?

转载 作者:行者123 更新时间:2023-12-02 08:54:10 27 4
gpt4 key购买 nike

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

我和许多其他人一样,在 Google 上搜索了此内容并找到了 this SO thread .

然而,最近,我的一门编程类(class)的一名学生告诉我,这不是真的,事实上,讲师也证实了这一点。妈的,全类都听到了,没有人跟他争辩。 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)中,但我受到了编译器错误的攻击。我什至不知道从哪里开始修复它们,但最主要的是无法解析符号“operator”

我不是在此处查找有关 Java's built-in operator overloading 的任何讨论,我正在寻找关于 Java 中的用户是否可以重载运算符本身的明确答案。

最佳答案

最终的答案是否定的,Java 不支持除 String 类型之外的运算符重载。但更重要的是,您的问题的一个更大的答案是您应该查看一个文档,Java Language Specification or JLS这将回答这个问题以及任何其他有关 Java 包含或不包含什么的类似问题。不要与任何人争论“也许”或“如果”。你自己去寻找吧,你会发现,除了神奇的 String 类型之外,Java 中不存在运算符重载这样的东西。这一切都在 JLS 中,这就是它的用途。

关于java - 那么...Java支持运算符重载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420084/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com