我遇到了一个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
我该如何强制使用隐式转换toStringWrapper将字符串字面量"str"转换为startsWith返回谓词而不是布尔值?
这段代码示例无法编译。我知道String已经有了一个startsWith方法,但我想使用另一个方法,并且我认为使用隐式转换可能是一种方法。