我正在爲Scala隱式轉換問題苦苦掙扎。下面的代碼片段說明我的問題:Scala隱式轉換問題
import org.junit.{ Test, Before, After };
class ImplicitsTest {
implicit def toStringWrapper(str: String) = new StringWrapper(str);
@Test
def test(){
val res1: Predicate = "str" startsWith "other";
}
}
class StringWrapper(str: String){
def startsWith(other: String): Predicate = null;
}
trait Predicate
我如何可以強制字符串「STR」通過隱式轉換toStringWrapper轉換得到startsWith返回謂詞,而不是布爾?
代碼示例不能編譯。我知道String已經有了一個startsWith方法,我只想使用另一個方法,並且我認爲使用隱式轉換可能是一種方法。
@ rex-kerr,謝謝您的詳細解答。 – 2010-10-07 06:54:18
我喜歡爲'this'提供別名以避免第二個臨時對象的模式。 – retronym 2010-10-11 21:09:13