私は、squareと呼ばれるクラスを作成して、shapeという抽象クラスを拡張します。正方形でgetClassを呼び出すと、正方形ではなくクラスA $ A101 $ A $ A101 $が得られます。カスタムスカラオブジェクトのクラスを取得
getClass(または同様の関数)を呼び出して、o:Object == squareかどうかを確認できる値を受け取りたいとします。
アドバイスありがとうございます。ありがとう
私は、squareと呼ばれるクラスを作成して、shapeという抽象クラスを拡張します。正方形でgetClassを呼び出すと、正方形ではなくクラスA $ A101 $ A $ A101 $が得られます。カスタムスカラオブジェクトのクラスを取得
getClass(または同様の関数)を呼び出して、o:Object == squareかどうかを確認できる値を受け取りたいとします。
アドバイスありがとうございます。ありがとう
getClass
あなたは非常に頻繁に必要なものではありません。 isInstanceOf
やpattern matchingのように、より抽象的なオブジェクトの種類をクエリできます。ここで
は、いくつかのREPLです:
scala> abstract class Shape
defined class Shape
scala> class Square extends Shape
defined class Square
scala> class Circle extends Shape
defined class Circle
scala> def isSquare(s: Shape): Boolean = s.isInstanceOf[Square]
isSquare: (s: Shape)Boolean
scala> isSquare(new Circle)
res4: Boolean = false
scala> isSquare(new Square)
res5: Boolean = true
ここisSquare
を書くための別の方法があります:時間の
scala> def isSquare(s: Shape): Boolean = {
| s match {
| case sq: Square => true
| case _ => false
| }
| }
ありがとう、ちょうど私が必要なものです。 –
99.9%getClass'はひどいアイデアです '使用します。あなたが実際にやろうとしていることは何ですか? –
@MrD基本的に私はオブジェクトを取ることができるメソッドを記述しようとしていますが、オブジェクトの指定されたセットではないものは無視してください。私はScalaの新機能ですので、$ squareの前に何らかのポインタを戻していると思いますか?助けてくれてありがとう。 –
フィルタリングしようとしている型を共通の特性やクラスをサブクラス化し、その共通の特性/クラスを求めてください。 –