Java开发问题集
2/27/2017 11:05:10 AM
本帖主要记录Java开发过程中遇到的Error和解决方法,流水账形式。记录格式为问题编号,环境描述,问题描述,解决方案。
- #1
环境描述:
Ubuntu 14.04 64bit
Eclipse Version: 3.8.1 Build id: debbuild
Jdk:Oracle java 8
Project:Floodlight v1.2
问题描述:
编译时出现错误 Duplicate methods named spliterator with the parameters () and () are inherited from the types Colle...
解决方案:
java8不支持该版本的Eclipse导致,可以将jdk版本切换到1.7版本,也可以将Eclipse升级到4.4版本。如果将jdk版本切换到1.7,不仅需要安装openjdk-7-jdk,而且还需要对Eclipse进行配置,如下图:
![Eclipse JRE配置](https://img-blog.csdn.net/20170228180847587?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSmFzb25UYW5nMTk5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
- #2
环境描述:
Ubuntu 14.04 64bit
Eclipse Version: 3.8.1 Build id: debbuild
Jdk:Oracle java 8
Project:Floodlight v1.2
问题描述:
编译时出现错误 The qualified case label OFType.PACKET_IN must be replaced with the unqualified enum constant PACKET_IN
解决方案:
将Qualified names用枚举常量替换掉就可以了,具体报错原因还不清楚。<s>switch的case状态必须是常量表达式(常量表达式的定义参考[15.28. Constant Expressions](http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#d5e25548))或枚举常量(如PACKET_IN),这里的报错信息与常量表达式有关,在[15.28. Constant Expressions](http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#d5e25548)中列举的常量表达式种类中的最后一条就是“Qualified names (§6.5.6.2) of the form TypeName . Identifier that refer to constant variables (§4.12.4).”。然而OFType.PACKET_IN有一个类的标识符,这样的话就不能作为switch的case状态。因此要用PACKET_IN。更详细的说明可以参考官方文档[14.11. The switch Statement](http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.11)。</s>