私は次のタイプを持っています:
class AddressEditor extends TextEditor {}
class TypeEditor extends TextEditor {}
私は編集者をそのように特定しようとしました:
void validationErrorHandler( ValidationError e )
{
var editor = e.editor;
if( editor is AddressEditor )
print( editor.runtimeType.toString() ) // prints TextEditor
if( editor is TypeEditor )
print( editor.runtimeType.toString() ) // prints TextEditor
}
鏡を使えば
import 'dart:mirrors';
getTypeName(dynamic obj)
{
return reflect(obj).type.reflectedType.toString();
}
void validationErrorHandler( ValidationError e )
{
var editor = e.editor;
if( editor is AddressEditor )
print( getTypeName( editor ) ) // prints TextEditor
if( editor is TypeEditor )
print( getTypeName( editor ) ) // prints TextEditor
}
エディタの種類が特定されないTypeEditor
のはなぜですか? AddressEditor
はい、どちらかが であることはわかっていますが、DartでまたはTextEditor
を識別する方法はありますか。TypeEditor
AddressEditor
検証の結果を処理するには、これらの識別を行う必要があります。
ありがとう