我有以下类型:
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
被识别?是的,我知道其中之一是 a TextEditor
,但是有什么方法可以识别 Dart 中的 theTypeEditor
或 the AddressEditor
。
我需要使这些识别与验证结果一起工作。
谢谢