確實scala.beans.beanproperty工作方式不同。在斯卡拉REPL下面的代碼爲什麼火花
import scala.beans.BeanProperty
class EmailAccount {
@scala.beans.BeanProperty var accountName: String = null
override def toString: String = {
return s"acct ($accountName)"
}
}
classOf[EmailAccount].getDeclaredConstructor()
結果
res0: java.lang.reflect.Constructor[EmailAccount] = public EmailAccount()
然而,在火花的REPL我得到
java.lang.NoSuchMethodException: EmailAccount.<init>()
at java.lang.Class.getConstructor0(Class.java:2810)
at java.lang.Class.getDeclaredConstructor(Class.java:2053)
... 48 elided
造成這種差異的原因是什麼?我如何獲得火花來匹配火花外殼的行爲。
我發動像這樣的REPLs:
/home/placey/Downloads/spark-2.0.0-bin-hadoop2.7/bin/spark-shell --master local --jars /home/placey/snakeyaml-1.17.jar
和
scala -classpath "/home/placey/snakeyaml-1.17.jar
斯卡拉版本 火花:
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_55)
階:
Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_55).