
在java编程中,&&(逻辑与)操作符用于连接两个布尔表达式。它期望其左右两边的操作数都能求值为true或false。当您遇到“operator '&&' cannot be applied to 'int', 'int'”这样的错误时,这通常意味着在&&操作符的两侧,出现了类型为int的表达式,而不是布尔表达式。
这种错误的根本原因在于混淆了Java中的两种关键运算符:赋值运算符(=)和相等运算符(==)。
赋值运算符 (=)
相等运算符 (==)
考虑以下导致错误的代码片段:
立即学习“Java免费学习笔记(深入)”;
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode = 1 && resultCode = RESULT_OK && data!=null){ // 错误发生在这里
imagePath = data.getData();
getImageinImageView();
}
}在这段代码中,if语句的条件表达式是: requestCode = 1 && resultCode = RESULT_OK && data!=null
让我们逐一分析其中的问题:
当Java编译器尝试处理requestCode = 1 && resultCode = RESULT_OK时,它会发现&&操作符的两侧都是int类型的值(1和RESULT_OK的值),而&&操作符只能应用于布尔类型。因此,编译器会报告“operator '&&' cannot be applied to 'int', 'int'”的错误。
要修正这个错误,我们需要将赋值运算符=替换为相等运算符==,以确保if语句中的条件表达式返回布尔值:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 修正后的代码
if (requestCode == 1 && resultCode == RESULT_OK && data != null){
imagePath = data.getData();
getImageinImageView();
}
}修正后,requestCode == 1会返回一个布尔值(true或false),resultCode == RESULT_OK也会返回一个布尔值。这样,&&操作符就能正确地连接这两个布尔表达式以及data != null这个布尔表达式,从而形成一个合法的if条件。
“operator '&&' cannot be applied to 'int', 'int'”错误是Java中一个明确的信号,表明在布尔逻辑表达式中误用了赋值运算符。通过理解赋值运算符=和相等运算符==之间的核心区别,并遵循上述最佳实践,开发者可以有效避免这类错误,编写出更健壮、更易于维护的代码。始终牢记,if语句的条件期望一个布尔值,而不是一个赋值操作的结果。
以上就是解决Java条件判断中“&&”操作符类型不匹配错误的教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号