微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我不能将Java中的字节数据类型转换为Java中的短数据类型

如何解决为什么我不能将Java中的字节数据类型转换为Java中的短数据类型

因此,实际上我还是Java编程语言的新手,并且仍在学习有关转换数据类型的知识因此,在这种情况下,我很难将Byte转换为Short。你们可以帮我吗?

public class Main {
    public static void main(Strings[] args) {
        int number = 2;
        long updateNumber = number + 2;
        System.out.println(updateNumber); //output : 4
    }
}

因此在这种情况下,我通常可以将(int)转换为(long)数据类型,因为(long)数据大小大于(int)。这与我尝试将其从(short)转换为(int)时的情况相同。但是为什么我不能使用这个概念将数据类型从(字节)转换为(短)?尽管(短​​)的数据大小大于(字节)?

public class Main {
    public static void main(Strings[] args) {
        byte number = 2;
        short updateNumber = number + 2;
        System.out.println(updateNumber); //output : Error
    }
}

我想就是这样。很抱歉给您带来麻烦,谢谢您。呵呵。

解决方法

当我们添加两个byte类型变量或byte类型变量和int类型变量时,结果会自动(隐式转换)强制转换为{{1 }}。因此,如果我们要将加法的结果分配给短类型变量,则编译器将给出错误。

虽然您可以通过显式强制转换将其分配给short类型变量。

int

相加的结果可能会溢出,因为此处可以在运行时更改数字变量值。因此,如果您将number声明为final,并且数字的加法运算符合字节范围,则无需进行显式强制转换,因为编译器将提前知道天气情况,加法运算的结果可以按字节或不按字节保存。 >

public static void main(String[] args) throws MyException {
        byte number = 2;
        //Explicit casting
        short updateNumber = (short) (number + 2);

        System.out.println(updateNumber); // output : Error
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。