Java 兼容性

2018-02-26 12:20 更新

當(dāng)我們寫的Scala代碼被Java調(diào)用時(shí),我們要確保從Java來(lái)用仍然習(xí)慣。這常常不需要額外的努力——class和純的trait等價(jià)于Java的中的對(duì)應(yīng)類型 —— 但有時(shí)需要提供獨(dú)立的Java API。一種感受你的庫(kù)中的Java API好的方式是用Java寫單元測(cè)試(只是為了兼容性);這也確保了你的庫(kù)中的Java視圖保持穩(wěn)定,在這一點(diǎn)上不會(huì)隨著時(shí)間因Scala編譯器的波動(dòng)而影響。

包含部分實(shí)現(xiàn)的Trait不能直接被Java使用: 改為 extends 一個(gè)抽象類44

 // 不能直接被java使用
 trait Animal {
   def eat(other: Animal)
   def eatMany(animals: Seq[Animal) = animals foreach(eat(_))
 }

 // 改為這樣:
 abstract class JavaAnimal extends Animal
                       
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)