首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们可以使用包装类将int转换为Byte,而无需类型转换吗?

我们可以使用包装类将int转换为Byte,而无需类型转换吗?
EN

Stack Overflow用户
提问于 2019-08-07 08:41:19
回答 4查看 767关注 0票数 2

我正在学习包装类,在这里我学习了如何将int转换为Interger包装类。

但是我想使用Byte包装类将int转换为Byte。

我试过了

代码语言:javascript
复制
int a =10;
Byte c = Byte; //(Not getting suggestion in eclipse)

例如,我知道如何将int转换为Interger,请参阅下面的代码。

代码语言:javascript
复制
int a =10;
Integer b = Integer.valueOf(a);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-07 08:45:14

您可以向整数添加一个额外的强制转换,如下所示:

代码语言:javascript
复制
int a = 10;
Byte c = Byte.valueOf((byte)a);

在网上试试。

顺便说一句,从原语到盒式值是由编译器隐式完成的。所以上面的代码不需要.valueOf

代码语言:javascript
复制
int a = 10;
Byte c = (byte)a;

在网上试试。

但是,当您显式地转换值时,请始终记住,当错误时,它可能会带来意想不到的结果。例如,在本例中,一个字节的大小小于一个整数(字节的范围是[-128, 127],int的范围是[-2147483648, 2147483647]),所以这样的内容不会给出预期的结果:

代码语言:javascript
复制
int a = 200;
Byte c = Byte.valueOf((byte)a); // Results in -56

在网上试试。

这也是为什么您通常不能选择较小的类型,因为它可能不适合,但您可以选择更大的类型,而不需要演员阵容:

代码语言:javascript
复制
byte a = 10;
Integer c = Integer.valueOf(a);

在网上试试。

票数 2
EN

Stack Overflow用户

发布于 2019-08-07 08:45:11

您可以按照通常使用Integer包装器的方式进行转换。

代码语言:javascript
复制
int a =10;
Byte b = Byte.valueOf((byte)a);
//b = 10

一个int是4个字节。因此,您不能在不丢失一些数据的情况下将整数转换为字节。

代码语言:javascript
复制
int a =1000;
Byte b = Byte.valueOf((byte)a);
//b = -24

但是,可以将int转换为字节数组。

Java -将int转换为4字节的字节数组?

票数 0
EN

Stack Overflow用户

发布于 2019-08-07 08:47:16

你也可以为Byte做同样的事情:

1.自动拳击

代码语言:javascript
复制
Byte b =  (byte) a;

2. valueOf(字节b)

代码语言:javascript
复制
Byte b =  Byte.valueOf((byte)a)

返回表示指定字节值的Byte实例。如果不需要新的Byte实例,则通常应该优先使用此方法而不是构造函数byte (字节),因为由于所有字节值都是缓存的,此方法可能会产生更好的空间和时间性能。

因此,如果没有强制转换操作符,就无法执行JLS 5.0-2.不同语境下的转换

代码语言:javascript
复制
    // Casting conversion (5.4) of a float literal to
    // type int. Without the cast operator, this would
    // be a compile-time error, because this is a
    // narrowing conversion (5.1.3):
    int i = (int)12.5f;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57390303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档