40

オブジェクトが Dart 言語のクラスであるかどうかを判断するにはどうすればよいですか?

私は次のようなことをしようとしています:

if (someObject.class.toString() == "Num") {
    ...
}

また、戻り値の型は何ですか? 文字列である必要がありますか?


ミラー ライブラリは浮き沈みがあり、現在急速に変化しているようです。

4

3 に答える 3

54

最近ゲッターObjectを手に入れました。runtimeTypeそのため、オブジェクトの型を別の型と比較するだけでなく、実際にオブジェクトのクラス名を取得することができます。

次のように:

myObject.runtimeType.toString()

さらに、Dart の現在のバージョンでは、操作をスキップして、オブジェクトとターゲット タイプをtoString直接比較できます。runtimeType

myObject.runtimeType == int

また

myObject.runtimeType == Animal
于 2012-10-14T10:42:57.157 に答える
47
  • isandis!演算子を使用すると、次のようになります。

    if (someObject is T)
    

    ドキュメントから:

    isand演算子は、is!型のチェックに便利です。で指定されたインターフェイスを実装する場合、 の結果 obj is Tは true です。たとえば、は常に true です。objTobj is Object

  • ミラー APIの使用(この例を参照):

    Expect.equals('T', someObject.simpleName)
    
于 2012-10-14T06:47:07.590 に答える