コンパニオンクラスから継承したオブジェクトの問題については既に読んでいます。例えばデフォルト以外のコンストラクタパラメータを持つスカラクラスシングルトン
:
- Class constructor parameter with default value causes companion object initializer to fail
- super constructor cannot be passed a self reference unless parameter is declared by-name
しかし、私は次のように持って少し別の問題(私はそれがバグであることを確認していない)
を持っていますコード:
class Scala(name: String)
import Scala._
object Scala extends Scala(TEST_NAME){
val TEST_NAME = "test name"
}
コンパニオンオブジェクトのスコープで定義された変数を使用していて、それをスーパーのコンストラクタに渡しています。
class Scala(name: => String)
import Scala._
object Scala extends Scala(TEST_NAME){
val TEST_NAME = "test name"
}
名前付き引数:
class Scala(name: String)
import Scala._
object Scala extends Scala(name = TEST_NAME){
val TEST_NAME = "test name"
}
コール名によって:私は試してみました
Scala.scala:5: error: super constructor cannot be passed a self reference
unless parameter is declared by-name
object Scala extends Scala(TEST_NAME){
^
one error found
その他の変種:
私は、次のコンパイルエラーを取得しています
両方Fそれら:
class Scala(name: => String)
import Scala._
object Scala extends Scala(name = TEST_NAME){
val TEST_NAME = "test name"
}
いくつかの環境の詳細:
- のjava:
java version "1.8.0_144"
- のjavac:
javac 1.8.0_144
- スカラ:
Scala code runner version 2.12.3
- scalac:
Scala compiler version 2.12.3
- OS:
Darwin ***.local 17.0.0 Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64
アップデート:この解像度に興味がある人のため
:
私は交際がはい、ここにあなたが交際中の必要がないわけ –
@EduardoParejaTobesを任意の役割を果たしているとは思いませんか? –
でも、これはhttps://stackoverflow.com/q/32203867/614394と似ていますが、値は同じです。私は型には問題ないと思っており、値には間違っていると思います。 –