Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Java中是否有类似于"+=“的方法来创建或模仿您自己的语法?非过载

在Java中是否有类似于"+=“的方法来创建或模仿您自己的语法?非过载
EN

Stack Overflow用户
提问于 2017-04-11 16:15:25
回答 2查看 84关注 0票数 1

编辑:我重写了这个问题,希望能让它更容易理解。

我不想超载!

如果您有以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ImmutableObject mutableReference = new ImuttableObject();

mutableReference = mutableReference.doStuff(args);

编译时间或预编译时间过程可以替换定义的文本格式吗?例如:

DEFINE X.=Y AS X = X.Y

可以取代

mutableReference .= doStuff(args)mutableReference = mutableReference.doStuff(args);

因此,一些进程知道".=“之前的代码是X,后面是Y。类似于语法糖,编译前或编译期间,只需将X.=Y替换为X= X.Y。

下面的是这个问题的旧版本.

我有以下的“形式”的代码,因为没有一个更好的词。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turnStates = turnStates.add(currentState); // log end of turn state.

            //turnStates.=add(currentState);
            //turnStates=.add(currentState);

其中turnStates可以是对任何不可变对象的引用。我希望它看起来像代码注释掉或类似。就像有++和+=的整数一样,我想要一种为我的不变值编写自己的方法。

我想我还记得C++中的一些预处理器内容,我认为这些东西可以代替预定义的代码片段文本。我想知道在java中是否有一种方法可以在编译时为工作代码定义一个进程来替换我想要的代码。

我相信你可以让IDE来做这件事,但是你不能和其他没有运行预先配置好的IDE的人共享代码。

编辑:

turnStates是不可变的,在要添加的调用中返回一个不同的对象。这是测试代码,我有我的理由,为什么一个列表,或者现在的行为更像一个堆栈,是不可变的。与问题无关,因为我可以简单地用player = player.doSomething(args)替换它,其中doSomething(args)返回一个Player实例。玩家只是模型的一小部分,是不需要花费的不可变的。

我知道在Java中重载和语法是不能改变的。正如我最初试图描绘的那样,如果没有遇到这样的情况,很抱歉:

我希望我没有意识到语法可能与@符号有关,它可以在编译之前取代文本。例如:

DEFINE X.=Y AS X = X.Y,其中X= turnStates和Y= add()在我的示例中。

但正如我投票时所说的那样。我将查看Scala,因为答案似乎是否定的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-11 16:17:33

No..Java显式地为用户定义的数据类型执行而不是支持操作符重载。然而,斯卡拉是一种JVM托管语言和有吗?

票数 9
EN

Stack Overflow用户

发布于 2017-04-11 17:58:40

与C++不同,overloading.But不支持运算符overloading.But Scala或Groovy。Scala可以集成到Java中,但Java仍然不直接支持操作符重载集成部分,因为您将无法使用操作符本身,而只能使用@eq(.)对于"=“操作符。如果您想了解Scala与java的集成,请查看此链接以获得更多细节。

底线: Java不支持操作符重载​

如果您的项目需要大量的向量加法、减法等,即许多自定义操作符,那么一个很好的建议是使用C#作为您选择的语言,这是一种类似Java的语言。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43358204

复制
相关文章
创建您自己的虚拟服务帐户
虚拟服务帐户允许您创建访问令牌,其中用户 SID 是服务 SID,例如NT SERVICE\TrustedInstaller。虚拟服务帐户不需要配置密码,这使其成为限制服务的理想选择,而不必处理默认服务帐户并使用 WSH 锁定它们或使用密码指定域用户。
Khan安全团队
2022/01/18
9560
创建自己的Code Snippets在VSCode中
1. Go to Code → Preferences → User Snippets
前端知否
2020/03/23
2.7K0
创建自己的Code Snippets在VSCode中
Java 中的语法糖有哪些呢
sugar),也叫做糖衣语法,是英国科学家发明的一个术语,通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会,真是又香又甜。
ruochen
2021/12/15
1.3K0
java中的|与||,&与&&的区别,与、或,非、异或、位运算
其实java中的|与||,&与&&是有区别的,自己调试了下,发现了区别所在具体如下:
全栈程序员站长
2022/09/15
8350
python中的与或非运算符_python与或非
昨天我们学习了 if 嵌套语句的基本语法,并结合实际案例学习基本用法,虽然 if 嵌套语句可以很好的解决我们的问题,但是有时却让代码显得有些复杂了,其实,有时我们可以用一些更简单的方式来解决需要用 if 嵌套解决的问题。比如,驾照考取的年龄限制问题,C1的驾照考取年龄要求必须在18周岁至70周岁之间。针对这个问题,我们先来用 if 嵌套来解决看看。
全栈程序员站长
2022/11/18
2.1K0
数字逻辑中的与或非异或的运算规律_执行逻辑与或非运算
计算机中的逻辑运算又被称作为“布尔运算”,分别为:逻辑与运算、逻辑或运算,逻辑非运算,“逻辑异或运算。此外在门电路中还有:同或运算、与非运算、或非运算。共七种。
全栈程序员站长
2022/11/08
6.2K0
在Java中12个常见的语法糖!
本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理
Java技术江湖
2019/09/24
8970
在Java中12个常见的语法糖!
java的异或_java中的异或
异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。
全栈程序员站长
2022/11/09
3.4K1
java的异或_java中的异或
在Java中12个常见的语法糖!
本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理
Java3y
2019/05/17
1.2K0
在Java中12个常见的语法糖!
Linux中创建自己的MOTD[通俗易懂]
  motd:是英文缩写message of the day 。译文是:每日提示信息,问候报文。那你为什么要用MOTD?其实目的很简单,是提示进入系统的用户注意事项,或提示系统运行的概要信息让用户更好的了解系统。在Linux系统要实现自己的MOTD,首先需要认识/etc/motd文件。
全栈程序员站长
2022/09/20
5K0
Linux中创建自己的MOTD[通俗易懂]
聊聊Java中的位运算:与、或、非、异或、左移、右移、无符号右移【小家Java】
提及位运算,相信对绝大多数Java程序员是感觉既陌生又熟悉的。陌生是因为你大概率没有去真实的使用过,熟悉是有时在看些开源框架(或者JDK源码)时会时长看到有使用的地方(譬如Jackson/Fastjson这些JSON库都大量的使用了位运算)。
YourBatman
2020/02/21
2.8K0
聊聊Java中的位运算:与、或、非、异或、左移、右移、无符号右移【小家Java】
Java生成指定范围的随机数,在Java中实现类似于PHP的rand()函数
在PHP中,我们可以使用 rand() 函数来生成指定范围的随机数。而在Java中,我们可以通过使用 java.util.Random 类来实现类似的功能。下面是一个示例代码,用于在Java中实现类似于PHP的 rand() 函数:
高久峰
2023/09/04
2830
自己写的一个类似于jQuery中的toggle函数
自己写的一个类似于jQuery中的toggle函数 这是HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>公共测试页</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script type="text/javascript
用户1719978
2018/07/05
7080
Java中判断字符是否为字母或数字
Character.isDigit(char c) 判断字符c是否是数字字符,如‘1’,‘2’,是则返回true,否则返回false
乐心湖
2020/07/31
11.3K0
搭建您自己的SonarQube
在devops流水线中,所有的代码都存储在代码仓库中,通过git的一些方法可以完成代码的codereview的卡点设置,那么下一步需要搭建的服务是什么呢?下一步就是Sonar,通过Sonar完成代码质量的管理。
Criss@陈磊
2019/10/09
1.8K0
搭建您自己的SonarQube
Java中的语法糖
我们在日常开发中经常会使用到诸如泛型、自动拆箱和装箱、内部类、增强 for 循环、try-with-resources 语法、lambda 表达式等,我们只觉得用的很爽,因为这些特性能够帮助我们减轻开发工作量;但我们未曾认真研究过这些特性的本质是什么,那么这篇文章,cxuan 就来为你揭开这些特性背后的真相。
程序员Leo
2023/08/02
1860
Java中的语法糖
iOS中在系统相册中创建自己App的自定义相册
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53412473
用户1451823
2018/09/13
2.3K0
Java中的语法糖
语法糖方便了程序员的开发,提高了开发效率,提升了语法的严谨也减少了编码出错误的几率。我们不仅仅在平时的编码中依赖语法糖,更要看清语法糖背后程序代码的真实结构,这样才能更好的利用它们。。
哲洛不闹
2018/09/19
7200
在PowerBI中创建时间表(非日期表)
在powerquery中创建日期表是使用powerbi过程中一个必不可少的内容(当然,你也可以使用DAX来创建):
陈学谦
2020/07/01
4.4K0
在PowerBI中创建时间表(非日期表)
Github创建您的私服
有时候我们自己做一些starter,然后让大家使用。但是苦于自己没有私服。代码写的再好但是其他的同学却获取不到。显然这让人很难受。那么如何将github作为自己的私服?下面让我们一探究竟。
写一点笔记
2020/08/25
6630
Github创建您的私服

相似问题

UWP:是否可以创建您自己的网络文件(类似于Onedrive)?

15

是否有标准的方法来识别您自己的postMessage在onmessage均衡器?

11

是否有更好的方法来模仿JS中的do符号?

11

java ME创建您自己的层

10

是否有更好的方法来保存您自己定制的开源项目的副本?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文