當我們寫的Scala代碼被Java調用時,我們要確保從Java來用仍然習慣。這常常不需要額外的努力——class和純的trait等價于Java的中的對應類型 —— 但有時需要提供獨立的Java API。一種感受你的庫中的Java API好的方式是用Java寫單元測試(只是為了兼容性);這也確保了你的庫中的Java視圖保持穩(wěn)定,在這一點上不會隨著時間因Scala編譯器的波動而影響。
包含部分實現的Trait不能直接被Java使用: 改為 extends 一個抽象類44
// 不能直接被java使用 trait Animal { def eat(other: Animal) def eatMany(animals: Seq[Animal) = animals foreach(eat(_)) } // 改為這樣: abstract class JavaAnimal extends Animal
更多建議: