scala> implicit def string2MyString(s:String) = new MyString(s)
warning: there were 1 feature warning(s); re-run with -feature for details
string2MyString: (s: String)MyString
好,我们重新启动repl,启用 -feature 选项:
$ scala -feature
scala> class MyString(str:String) { def say() {println(str)} }
defined class MyString
scala> implicit def string2MyString(s:String):MyString = new MyString(s)
<console>:8: warning: implicit conversion method string2MyString should be enabled
by making the implicit value language.implicitConversions visible.
This can be achieved by adding the import clause 'import scala.language.implicitConversions'
or by setting the compiler option -language:implicitConversions.
See the Scala docs for value scala.language.implicitConversions for a discussion
why the feature should be explicitly enabled.
implicit def string2MyString(s:String):MyString = new MyString(s)
^
string2MyString: (s: String)MyString
这回给出了详细的警告信息,使用隐式转换方法,建议在代码中引入language单例的implicitConversions成员: import scala.language.implicitConversions 或者 编译时指定-language:implicitConversions参数