は、私は、次のJavaメソッドがScalaでは、AnyとObjectの違いは何ですか?
protected void onEvent(Object obj) {
}
Scalaのコンパイラは
protected override def onEvent(event: Any)
と
protected override def onEvent(event: Object)
2の間に違いはあり受け入れていると仮定しますか?
は、私は、次のJavaメソッドがScalaでは、AnyとObjectの違いは何ですか?
protected void onEvent(Object obj) {
}
Scalaのコンパイラは
protected override def onEvent(event: Any)
と
protected override def onEvent(event: Object)
2の間に違いはあり受け入れていると仮定しますか?
スケーラランにはarticleがあります(私は壁に置いても構いません)。
If Scala is used in the context of a Java runtime environment, then scala.AnyRef corresponds to java.lang.Object.
Any
には、JavaではObject
が含まれていません。プリミティブ型とNothing
も含まれています。 Object
はJavaと同じクラスなので、基本的にはプリミティブを除外します。
Objectを使用するJavaメソッドを試している場合、Anyはプリミティブを渡すか、暗黙的に変換されると問題になるのですか? –
@JamesMcMahon私は同じと思う。 – 2rs2ts
@James私は 'def met(a:java.lang.Object)= {};を試しました。 val i = 10; *エラー:暗黙の変換の結果の型は、AnyRef *より具体的でなければなりません* http://stackoverflow.com/a/26550576/4541480、それは 'val i: 'Any''はサブクラス' AnyVal'も持っています。 – Nicofisi
' AnyRef'は ' –
@variable.nnteger = 10'(デフォルトでは 'val i:Int = 10'ではデフォルトではありません) – 4e6
いいえ、あなたは何も見逃していませんでした。リンクをたどらなかった人々を明確にしたかっただけです。 –