资讯专栏INFORMATION COLUMN

java语法及运行时错误记录

happyhuangjinjin / 2001人阅读

摘要:相关解决语句中只能写枚举类定义的枚举值前面不能带类名限定在中已经确定了枚举的类型如果有两个枚举中都有同一个变量比如的话则无法确定判断的先后顺序解决方式枚举值不是常量而后面只能跟常量先将型的转换成枚举值再进行匹配在以后,实现接口后,要满足三个

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68542.html

相关文章

  • 16.java异常处理

    摘要:不受检查异常为编译器不要求强制处理的异常,检查异常则是编译器要求必须处置的异常。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当运行时系统遍历调用栈而未找到合适的异常处理器,则运行时系统终止。异常处理涉及到五个关键字,分别是。 概念 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。 异常是程序中的一些错误,但并不是所有的错误都是异常,并...

    asce1885 评论0 收藏0
  • Java程序设计笔记

    摘要:对象的自动清除对象回收是由垃圾回收线程负责方法可以要求系统进行垃圾回收,仅仅是建议系统没有析构方法,但的有类似方法系统在回收时会自动调用对象的方法子类的方法可以在里面释放系统资源,一般来说,子类的方法中应该调用父类的方法。 对象的自动清除 对象回收是由垃圾回收线程负责 System.gc()方法可以要求系统进行垃圾回收,仅仅是建议系统 java没有析构方法,但Object的final...

    microcosm1994 评论0 收藏0
  • JavaScript 语法解析、AST、V8、JIT

    摘要:语法解析是如何执行的原文地址,对于常见编译型语言例如来说,编译步骤分为词法分析语法分析语义检查代码优化和字节码生成。对于解释型语言例如来说,通过词法分析语法分析语法树,就可以开始解释执行了。 JavaScript 语法解析、AST、V8、JIT JavaScript 是如何执行的 原文地址,对于常见编译型语言(例如:Java)来说,编译步骤分为:词法分析->语法分析->语义检查->代码...

    hedge_hog 评论0 收藏0
  • Java异常处理

    摘要:异常也就是指程序运行时发生错误,而异常处理就是对这些错误进行处理和控制。有两个重要的子类异常和错误,二者都是异常处理的重要子类,各自都包含大量子类。需要注意的是,一旦某个捕获到匹配的异常类型,将进入异常处理代码。 1,异常现象 程序错误分为三种:1,编译错误;2,运行时错误;3,逻辑错误。 编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这...

    CarlBenjamin 评论0 收藏0
  • Java 异常处理

    摘要:下面是异常处理机制的语法结构业务实现代码输入不合法如果执行块里业务逻辑代码时出现异常,系统自动生成一个异常对象,该对象被提交给运行时环境,这个过程被称为抛出异常。 Java的异常机制主要依赖于try、catch、finally、throw和throws五个关键字, try关键字后紧跟一个花括号括起来的代码块(花括号不可省略),简称try块,它里面放置可能引发异常的代码 catch后对...

    senntyou 评论0 收藏0

发表评论

0条评论

happyhuangjinjin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<