㈠ 請問各位java同學,為什麼我在編寫集合的代碼時,最後用迭代器對象輸出String集合元素內容時會亂碼
你用迭代器輸出的是集合元素的地址,而不是集合元素的值
㈡ 為什麼將class反編譯為java後,java直接編譯時有錯誤
midlet不存在? 如果你用的是Eclipse那你在配置環境時有問題 沒關聯EclipseMe 和關聯WTK MIDletStateChangeException應該是有異常
反編譯的軟體一般都會使用如a b c之類的變數名 導致很多類的情況下容易重名導致變數混亂 最好改成自己習慣的變數名
至於環境變數的配置按這個來
右鍵點擊我的電腦--->屬性--->高級--->環境變數--->系統變數--->新建
path: C:\j2sdk1.4.2_05\bin
classpath: .;C:\j2sdk1.4.2_05\lib\dt.jar;C:\j2sdk1.4.2_05\lib\tools.jar 確定
改了還不行的話把代碼貼出來看看 祝你走運~~~
㈢ Java集合迭代為什麼會發生異常
在用迭代器iterator迭代元素的時候,是不能夠直接添加刪除元素的,就是說不能進行修改,否則可能會產生異常。移除元素可以使用it.remove()這個方法是標記移除,等遍歷完才真正刪除。你上述程序沒有發生異常是因為學習C#語言是set的最後一個元素,但是在裡面添加,循環中沒有列印出來吧。
㈣ Java編程:常見的幾個錯誤
Java 中最常見的 5 個錯誤:
1、Null 的過度使用
避免過度使用 null 值是一個最佳實踐。例如,更好的做法是讓方法返回空的 array 或者 collection 而不是 null 值,因為這樣可以防止程序拋出 NullPointerException。
2、忽視異常
我們經常對異常置之不理。然而,針對初學者和有經驗的 Java程序員,最佳實踐仍是處理它們。異常拋出通常是帶有目的性的,因此在大多數情況下需要記錄引起異常的事件。別小看這件事,如果必要的話,你可以重新拋出它,在一個對話框中將錯誤信息展示給用戶或者將錯誤信息記錄在日誌中。至少,為了讓其它開發者知曉前因後果,你應該解釋為什麼沒有處理這個異常。
3、並發修改異常
這種異常發生在集合對象被修改,同時又沒有使用 iterator 對象提供的方法去更新集合中的內容。
4、違約
有時候,為了更好地協作,由標准庫或者第三方提供的代碼必須遵守共同的依賴准則。例如,必須遵守hashCode和equals的共同約定,從而保證 Java 集合框架中的一系列集合類和其它使用hashCode和equals方法的類能夠正常工作。不遵守約定並不會產生 exception 或者破壞代碼編譯之類的錯誤;它很陰險,因為它隨時可能在毫無危險提示的情況下更改應用程序行為。
5、使用原始類型而不是參數化的
根據 Java 文檔描述:原始類型要麼是非參數化的,要麼是類 R 的(同時也是非繼承 R 父類或者父介面的)非靜態成員。在 Java 泛型被引入之前,並沒有原始類型的替代類型。Java 從1.5版本開始支持泛型編程,毫無疑問這是一個重要的功能提升。然而,由於向後兼容的原因,這里存在一個陷阱可能會破壞整個類型系統。
㈤ java集合類型轉換錯誤問題
collectiontest.Roleright cannot be cast to java.lang.Comparable
這是我在Eclipse中運行時報的異常..
樓主程序出錯的原因在於TreeSet是需要對所有元素進行排序.而比較是排序的必備操作..因此作為TreeSet中的元素必須實現Comparable介面..
樓主的Roleright類並沒有實現Comparable介面,因此將list中元素放入TreeSet的時候,會提示異常..
㈥ java編譯時發生錯誤
1.class,不是classs,
2.for(i=1;i<100;i++)注意是兩個分號不是逗號
3.int i,sum; 中間是逗號,不是點
4.system.out.println("1+2+...+100"+sum);是雙引,不是單引.
㈦ java反編譯後得到的源碼 很混亂 怎麼辦
不是每個反編譯都能完美的,用eclipse規范下代碼,然後不符合的語法的方法,自己換成適合當前jdk版本支持的就可以了,反編譯還是得花力氣在代碼的上,偷懶有限啊。