问题描述
- JAVA表达式的一些问题
-
求教大神,下面一句代码是啥意思啊,主要是那个“:”不懂何意。setFlags(clickable ? CLICKABLE : 0, CLICKABLE);
解决方案
这个是JAVA的三目运算符。三目运算符 (表达式1)? (表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值
clickable如果为真,则第一个参数就为CLICKABLE ,如果clickable为假,第一个参数为0
解决方案二:
判断clickable 与CLICKABLE 是否相等,相等取0,不相等取CLICKABLE
解决方案三:
这句话“clickable ? CLICKABLE : 0 ”表示 判断clickable是否为true,进而得出不同结果(:的两侧)。如果是true,则结果是冒号左侧的CLICKABLE,那么 setFlags函数传入的参数是: setFlags(CLICKABLE,CLICKABLE);如果是false,则结果是冒号右侧的0,那么 setFlags函数传入的参数是: setFlags(0,CLICKABLE)。
clickable ? CLICKABLE : 0 可以解释为
if(clickable)
value = CLICKABLE;
else
value = 0;
解决方案四:
clickable ? CLICKABLE : 0这个是三目运算符,前面是个boolean值,如果为true,取值就是CLICKABLE,如果是false,取值就是0;可以看下三目运算符的介绍http://baike.baidu.com/link?url=iN-adWoVRlKWnLzuLPlPA5kMlIOwSgc40U-yzr9zOy3y5EsFrNKxKibyXq393rTMSufW3_DhR3z-MgUFo-JhDa。
时间: 2024-09-06 21:55:09