Java类型不匹配无法从int转换为byte?

标签 java casting type-conversion

我想知道为什么 //1编译器和 //2 接受语句声明不是

    //1
    int k = 99999999;
    byte l = (byte)k;

    //2
    byte b = 1;
    int i = 10;
    byte z = (byte)i+b; //compiler rejected 

Type mismatch: cannot convert from int to byte using ternary operator给了我一些想法,但我不明白为什么编译器可以解析变量 l//1可接受且 Not Acceptable i//2

最佳答案

您仅将第一个数字i转换为byte,而不是整个总和。您必须添加括号:

byte z = (byte) (i+b);

关于Java类型不匹配无法从int转换为byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973904/

相关文章:

java - 了解与 Azure Groovy Java 一起使用的长轮询客户端逻辑

java - docker 镜像可以使用主机的可执行文件吗?

java - 文件名的正则表达式

java - android 位图和 opencv mat - 相同的代码不同的结果

PHP舍入错误与简单的乘法

sql-server - 日期转换和文化 : Difference between DATE and DATETIME

c++ - const_cast 是否返回尖括号内指定的类型

c++ - 当 const-ref 和 value 存在时,为什么转换运算符会导致不明确的重载

php - 通过PHP保存到MySQL TIME和DATE数据类型

Kotlin:在哪些情况下会发生隐式转换?