Scalaには、倍精度数値の2つの表現があり、1つはAnyVal
、もう1つはAnyRef
です。 JVM上では、それらはプリミティブdouble
およびクラスjava.lang.Double
にそれぞれマップされます。純粋なScalaでboxed Doubleをどのように表現できますか?
JVM以外のプラットフォームではどうなりますか?プリミティブにはScala.Double
を使用できますが、java.lang.Double
を指定せずにboxed Doubleへの参照を指定するにはどうすればよいですか?
[文脈 - トーマスの答えを理解するために残したが、基本的な問題ではない。私は上記のようscala.Double
としてのタイプを指定した場合、それはオブジェクトのみを注入できるよう
class MyPanel(id: String) extends Panel(id) {
@SpringBean(name="rxAlarmLimitDb") var alarmLimitDb: Double = _
、インジェクタは、失敗します。
は、私はWicketのコンポーネントに春を注入したいダブルを持っています。私は、フィールドのタイプとしてjava.lang.Double
を指定すると、すべてがうまく
class MyPanel(id: String) extends Panel(id) {
@SpringBean(name="rxAlarmLimitDb") var alarmLimitDb: java.lang.Double = _
ですが、私は、JavaのAPIにフォールバックに私の依存を軽減しようとしているので、どのように私は箱入りDouble
を表しますそれなしで? ]
:-)れるjava.langを参照してくださいする必要がありません
私の推測では、*ダブル箱入り*があるということです'java.lang.Double' - Scalaは他の多くのもの(AnyRef = java.lang.Object、String = java.lang.String)に対してJavaクラスを使用するのと同様です。私は確かに、わからない。 – Owen
@あなたは正しいですか? –
これらのステートメントは、JVMに当てはまります。 CLRには異なるマッピングがあります。ボックスド・ダブルの表現方法も知りたいです。 –