1

明らかに単純な問題に悩まされ、その問題については多くの情報があります(現在の状況が一体何であるかを知るにはあまりにも多くの情報があります)。

とにかく、ここに行きます。

trait _Foo
class Foo Extends _Foo with WhoAmI
trait WhoAmI {
  def who = {
    getClass match {
      case x: _Foo => "should be Foo instance, which extends _Foo"
      case _ => "why?"
    }
  }
}
val foo = new Foo
foo.who

classOfisAssignableFromを使用してガードを試し、x.getInterfacesをループしました(少なくともそこには_Fooがあります)が、直接の「リーン」マッチに関しては運がありません。

この消去は「機能中」ですか、それとも明らかな1ライナーが欠落していますか?

これが他の多くのスレッドと重複している場合は、閉じることができますが、正しい方向に向けてください。;-)

ありがとう

4

1 に答える 1

5

thisの代わりに使用する必要がありますgetClass

this match {

現在、(タイプgetClassのオブジェクトを返す)呼び出しています-クラスがあなたの特性を拡張しないことを確認してください-それが「なぜですか?Class[T]java.lang.Class_Foo

于 2012-04-14T17:55:19.370 に答える