弱问题讨论,关于运算符的优先级

For_suzhen 2009-07-24 02:36:39

rtnValue = swiJcb.isSelected()?"1":"0" + ","
+CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
+ alarmJtf.getText() +","
+ normalJtf.getText() + ","
+dcleanJcb.isSelected()?"1":"0";



Type mismatch: cannot convert from String to boolean
后来改了一下

String s= dcleanJcb.isSelected()?"1":"0";

rtnValue = swiJcb.isSelected()?"1":"0" + ","
+CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
+ alarmJtf.getText() +","
+ normalJtf.getText() + ","
+s;


行了
请大伙说说是怎么一回事呢
和优先级有关吗?为什么是String to boolean。
为什么是cannot convert from String to boolean
...全文
214 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
2到20个英文 2009-07-27
  • 打赏
  • 举报
回复
楼主帮顶
qiubojuncode 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jinxfei 的回复:]
学习。
[/Quote]学习!
virus7581 2009-07-27
  • 打赏
  • 举报
回复
最简单的a+b==c?1:0,先执行+;
[Quote=引用 4 楼 closewbq 的回复:]
我刚看了看书,认真的查看了遍是这样的:
1.[]()方法调用
2.!,~,++,-- +(一元),-(一元) ,()(强制转换),new
3.* / %
4.+ -
5. < < >> >>>
6. <  <=  >  >= instanceof
7.== !=
8.&
9^
10.|
11.&&
12.||
13.?:
14.= += -+ *= /= %= &= |= ^= < <= >>= >>>=


累!
[/Quote]
平时都是靠感觉,真到较真的时候还是的看书啊
melody1128 2009-07-27
  • 打赏
  • 举报
回复
mark
junyun414 2009-07-27
  • 打赏
  • 举报
回复
支持六楼,我也是有点不清楚的地方就加括号。
括号,敢敢的!!!
DefunctMan 2009-07-27
  • 打赏
  • 举报
回复
还有就是java的编译对操作符的扫描顺序是从左到右逐个操作符执行的。


给你一个经典的例子
int i = 5;
int a;
a = (i++)+(i++)+(i++);
System.out.println("i = " + i );
System.out.println("a = " + a );
superheizai 2009-07-27
  • 打赏
  • 举报
回复
学习了
ojwftded 2009-07-25
  • 打赏
  • 举报
回复
就是由于优先级的问题
你第一次这样写的
rtnValue = swiJcb.isSelected()?"1":"0" + ","
+CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
+ alarmJtf.getText() +","
+ normalJtf.getText() + ","
+dcleanJcb.isSelected()
?"1":"0";
由于+号的运算级药高于?:,所以编译的时候先将红色部分当做bool表达式进行处理,而他是个String类型,‘?’号前要求是boolean型的,所以提示cannot convert from String to boolean
Monkey_D_Luffy 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 johnson_hong 的回复:]
呵呵,都是优先级惹得祸啊
编程规范里说,在复杂的表达式里即使不加括号也对,也建议将每段逻辑用括号括起来分割,一是避免优先级导致逻辑错误,二是增加可读性。
[/Quote]

D帮顶,编程规范最重要,方便检错,也增强可读性
chenhao_283 2009-07-24
  • 打赏
  • 举报
回复
up
阿士匹灵 2009-07-24
  • 打赏
  • 举报
回复
在看

今天老总请吃饭

喝了一些酒
有点晕

呵呵

明天再仔细看看

不好意思
Johnson_Hong 2009-07-24
  • 打赏
  • 举报
回复
呵呵,都是优先级惹得祸啊
编程规范里说,在复杂的表达式里即使不加括号也对,也建议将每段逻辑用括号括起来分割,一是避免优先级导致逻辑错误,二是增加可读性。
zl3450341 2009-07-24
  • 打赏
  • 举报
回复
学习了
jinxfei 2009-07-24
  • 打赏
  • 举报
回复
学习。
smallbear923 2009-07-24
  • 打赏
  • 举报
回复
做这方面的话最好多加几个( ),这个样子就不需要多考虑运算符的优先级了。
王铎开 2009-07-24
  • 打赏
  • 举报
回复
我知道程序是一行一行按顺序执行的
closewbq 2009-07-24
  • 打赏
  • 举报
回复
我刚看了看书,认真的查看了遍是这样的:
1.[]()方法调用
2.!,~,++,-- +(一元),-(一元) ,()(强制转换),new
3.* / %
4.+ -
5.<< >> >>>
6.< <= > >= instanceof
7.== !=
8.&
9^
10.|
11.&&
12.||
13.?:
14.= += -+ *= /= %= &= |= ^= <<= >>= >>>=


累!
bigbug9002 2009-07-24
  • 打赏
  • 举报
回复
?:运算符的优先级是最低了。
网络科技 2009-07-24
  • 打赏
  • 举报
回复
+dcleanJcb.isSelected()?"1":"0";
这里加个括号应该可以,改为:+(dcleanJcb.isSelected()?"1":"0");
xlxyeyu 2009-07-24
  • 打赏
  • 举报
回复
应该是有关系的,你改成
rtnValue = swiJcb.isSelected()?"1":"0" + ","
+CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
+ alarmJtf.getText() +","
+ normalJtf.getText() + ","
+(dcleanJcb.isSelected()?"1":"0");试试

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧