java语法及运行时错误记录

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了java语法及运行时错误记录脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

enum相关

an enum switch case label must be the unqualified name of an enumeration constant

PRivate void test(ColorTyPE type){          swITch (type){              case ColorType.GREEN:                  break;              case ColorType.red:                  break;              case ColorType.ORANGE:                  break;               default:                  break;       }   }

解决

case语句中只能写枚举类定义的枚举值, 前面不能带类名限定, 在switch中已经确定了枚举的类型.
如果有两个枚举中都有同一个变量(比如GREEN)的话, 则无法确定判断的先后顺序.

private void Test(ColorType type){          switch (type){              case GREEN:                  break;              case RED:                  break;              case ORANGE:                  break;               default:                  break;       }   }

constant exPression required

private void Test(int type){          switch (type){              case ColorType.GREEN.getCode():                  break;              case ColorType.RED.getCode():                  break;              case ColorType.ORANGE.getCode():                  break;               default:                  break;       }   }

解决方式
枚举值不是常量, 而case后面只能跟常量.
先将int型的type转换成枚举值, 再进行switch匹配

Comparison method violates its general contract!

在JDK7以后,实现Comparable接口后,要满足三个特性: 自反性, 对称性和传递性.
通常是因为没有满足对称性导致的, 如没有判断返回"相等"的情况

可以用System.setProperty("java.util.Arrays.useLegacyMergeSort", "true"), 或设置JVM参数-Djava.util.Arrays.useLegacyMergeSort=true来兼容JDK6及以前版本的代码, 因为JDK7之后默认使用的TimSort

脚本宝典总结

以上是脚本宝典为你收集整理的java语法及运行时错误记录全部内容,希望文章能够帮你解决java语法及运行时错误记录所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。