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>