私が開発しているプログラムには、次のコードに似たものがあります (より多くのパラメーターのみ)。
class Particle {
//variables
def this(position: Position2D, velocity: Vector2D) = {
this()
//constructors
}
def this(xPos: Double, yPos: Double, magnitude: Double, angle: Double) = {
this(new Position2D(xPos, yPos), new Vector2D(magnitude, angle))
}
}
そして、プログラムが最初のパラメーターのオブジェクトと 2番目のパラメーターの 2 つ、または最初のパラメーターの2 つと 2番目Position2D
のパラメーターのオブジェクトを受け入れることができるようにしたいと思います。パラメータの。次のようなものを使用できることを知っています。Doubles
Doubles
Vector2D
this
def this(posObj: Either[Position2D, Array[Double]], velObj: Either[Vector2D, Array[Double]]) = {...}
posObj
次に、 と がどのような型であるかをテストしますvelObj
。ただし、次のように初期化できるように、 の 2番目の部分をEither
などの 1 つのアイテムにする必要なく、これを行う方法があるかどうかに興味がありました。Array
Particle
val a = new Particle(new Position(3, 6), 30, 5)
val b = new Particle(3, 6, new Vector2D(30, 5))
val c = new Particle(new Position(3, 6), new Vector2D(30, 5))
val d = new Particle(3, 6, 30, 5)