System.out.println(Integer.MAX_VALUE+" ”+String.CASE_INSENSITIVE_ORDER);
当表达式中包含字符串,+ 是字符串的连接运算符,而不是进行数字运算作者: 杨静 时间: 2012-5-13 22:45
public static final Comparator<String> CASE_INSENSITIVE_ORDER A Comparator that orders String objects as by compareToIgnoreCase. This comparator is serializable 是一个序列化的数据,而前面的Integer.MAX_VALUE是一个int型的数据,错误报告说是The operator + is undefined for the argument type(s) int, Comparator<String>即是说加法运算符对两边的数据运算是没有定义的,在这里不是当做连接符处理的。而你在两者之中加上" "后根据运算符的结合性,会被认为是连接符因此就会运行正确。作者: 云惟桉 时间: 2012-5-14 00:31
金肖 发表于 2012-5-13 20:29
但是为什么 + “ ” 后就ok了呢
楼上已经给出正解作者: 金肖 时间: 2012-5-14 07:56
噢.......啦!作者: It's_Zero 时间: 2012-5-14 11:42
String.CASE_INSENSITIVE_ORDER 这个是String 里的一个
public static final Comparator<String> CASE_INSENSITIVE_ORDER
= new CaseInsensitiveComparator(); 方法
所以 你使用String.CASE_INSENSITIVE_ORDER 实际上是一个对象,而非一个变量,所以是不能直接用 " + "的
代码示意如下:
public class Demo {
public static void main(String[] args) throws Exception {