5/27/2014
2:16:00 PM 0

Apache Commons Logging 整合 java.util.logging

設定 commons logging 使用 java.util.logging 在應用程式的 classpath 中加入 commons-logging.properties 檔案 commons-logging.properties 內容如下,作用是要 commons.logging 使用 Jdk14Logger org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger 若不使用 commons-logging.properties, commons logging 會先搜尋 classpath 中是否存在 log4J , 若存在 log4J 則優先使用 log4J, 若不存 log4J 才會使用 java.util.logging, 順序可參考 org.apache.commons.logging.LogSource 建立 java.util.logging 設定檔 建立設定檔 logging.properties, 檔名可自訂 handlers=...
5/22/2014
3:19:00 PM 0

Java Type Erasure

Java 的泛型其實是在編譯器上做了手腳,Java 在編譯時期由編譯器幫我們做了型別轉換的檢查,當 compile 成 bytecode 後,我們使用工具觀察,可以發現我們在程式中所使用的泛型全都不見了,也因此程式在 run time 時是看不到泛型的影子,這種泛型的實現方式稱作 type erasure, 其優點是確保了相容性, 而 .NET 的泛型就不一樣了, .NET 的泛型是真正運行於 CLR 層上的功能, 也因此 Java 的泛型與 .NET 相比, Java 多了許多限制 舉個例子,假設我們要實做一個 List, 當索引值超出 List 長度時, 回傳傳入泛型型別的實例 C# public class Animal { public override String ToString() { return this.GetType().Name; } } public class Cat : Animal {} public class Dog : Animal {} public class...