class Test
{
public static void main(String[] args)
{
byte t1 = 111;
byte t2 =11;
byte t3 = t1+t2;
System.out.println(t1+t2);
}
}
在日食中显示错误。这是cannot convert from int to byte
总和是122字节范围内的范围。所以为什么我在这里出现此错误。
提前致谢…
当您对字节执行数学运算时,Java会对字节进行扩展(自动类型提升)到字节(隐式转换)以对这种情况进行整数处理。所以当你表演
byte t3 = t1+t2; // t1+t2; will be evaluated as integer.
由于t1 + t2的结果比字节宽,因此您需要将其下转换为字节。
消除编译错误。
byte t3 = (byte) (t1+t2); // typecast to byte
有关更多信息,请阅读 JLS
5.1.2
问题内容: 我有以下几行代码 我认为第3行和第4行执行相同的任务,然后为什么编译器在第4行显示错误“类型不匹配:无法从long转换为int” 请帮忙。 问题答案: 这是因为复合赋值运算符会进行隐式转换。 从JLS复合分配运算符: 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 对于二进制运算符,则必须显式进行强制转换。进行第四项作业: 它会工作。这就是您的复合赋值表达
问题内容: 我正在使用ZXING库在JAVA中创建QR码生成器程序。该程序是 编译该程序时,出现类型不匹配错误, 在这条线 请帮忙!!! 问题答案: 我自己从未使用过该库,但是阅读错误消息时,我会假设您必须要以字节为单位存储字节的问题。问题将是一个字节由多个位组成,因此您不能仅通过一位表示一个字节。 将编码数据存储到ByteMatrix中,然后阅读以下内容: 使用zxing进行QR码编码和解码 完
但它抱怨说: 如何同时解决这两个错误?
问题内容: 如果声明类型为byte或short的变量并尝试对其进行算术运算,则会收到错误“类型不匹配:无法将int转换为short”(或相应的“类型不匹配:不能将int转换为byte”)。 在此示例中,编译错误在第三行。 问题答案: 尽管算术运算符被定义为可以对任何数字类型进行运算,但是根据Java语言规范(5.6.2 Binary Numeric Promotion),字节和short类型的操作
我创建了一个AsyncTaskLoader: 在我的活动课上,我有这样的内容: