你能解释一下这个任务吗?这是什么意思?
boolean activityExists = testIntent.resolveActivity(pm) != null;
这意味着true
如果testIntent.resolveActivity(pm)
不返回则分配,null
否则分配false
。
可以理解的长形式是
boolean activityExists;
if(testIntent.resolveActivity(pm) != null) {
activityExists = true;
} else {
activityExists = false;
}
检查是否testIntent.resolveActivity(pm)
为空。如果不为 null,则 activityExists 的值为true
,否则为false
。
activityExists
true
恰好变成if testIntent.resolveActivity(pm)
is not null
。
当且仅当返回的值is not时,它才分配activityExists
给。否则,设置为。true
testIntent.resolveActivity(pm)
null
activityExists
false
基本上它是说如果那个布尔值是真的,这意味着有一些活动(从resolveActivity方法返回的活动不为空,它存在)。例如,如果resolveActivity返回null(无)它会是假的,因为它确实== null,但如果它返回一个有效的活动,非空,它会是真的
testIntent.resolveAvtivity(pm)
会返回一些东西。如果它不是“null”,那么activityExists = true
. 如果它返回 null(意味着它什么也不返回),那么activityExists = false
.
testIntent.resolveActivity(pm) != null
解析为布尔表达式。无论方法resolveActivity(pm)
返回什么,都会与null
. 如果相等,则返回 false。如果不相等,则返回 true。
然后可以将此比较的结果分配给一个布尔值,以便稍后在代码中使用。您不想每次都进行比较,除非您必须这样做。