为什么java没有byte类型后缀?

发布于 2024-09-29 17:08:59 字数 352 浏览 3 评论 0原文

所以java对于字面量有一个long类型后缀:(123L),一个double类型后缀(43.21D),一个浮点类型后缀(1.234F)。那么...为什么没有字节类型后缀呢?例如,在编写一些测试代码时,当它们用作函数参数时,您必须强制转换所有字节。

ByteBuffer b = ByteBuffer.allocate(100);
b.put((byte)3);   // super annoying
b.put(3b);        // if only

显然,使用 B 或 b 不起作用,因为它会与以十六进制或八进制指定字节的能力(一项关键语言功能)相冲突。但还有其他字母,比如 Z z 吗?或 Y y(代表字节)?

So java has a long type suffix for literals: (123L), a double type suffix (43.21D), a floating point suffix (1.234F). So ... why no byte type suffix? For example, when writing some testing code you MUST cast all your bytes when they are used as function parameters.

ByteBuffer b = ByteBuffer.allocate(100);
b.put((byte)3);   // super annoying
b.put(3b);        // if only

It is clear that using B or b would not work since it would conflict with the ability to specify a byte in hexadecimal or octal (a critical language feature). But some other letter, like Z z? or Y y (for bYte)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

℡寂寞咖啡 2024-10-06 17:08:59

这并没有真正回答为什么的问题,但就其价值而言,2009 年 3 月提出了一项提案,即使用 Y 字节后缀表示字节,S 表示缩写: 字节/短后缀提案

This does not really answer the question of why, but for what it's worth, there was a proposal put forward in March of 2009 for just this with the Y byte suffix for bytes and S for shorts: Byte/short suffix proposal

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文