作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以前版本的dart能够使用
cm.getters.values
cm.declarations.values
import "dart:mirrors";
class MyNestedClass {
String name;
}
class MyClass {
int i, j;
MyNestedClass myNestedClass;
int sum() => i + j;
MyClass(this.i, this.j);
}
void main() {
MyClass myClass = new MyClass(3, 5)
..myNestedClass = (new MyNestedClass()..name = "luis");
print(myClass.toString());
InstanceMirror im = reflect(myClass);
ClassMirror cm = im.type;
Map<Symbol, MethodMirror> instanceMembers = cm.instanceMembers;
cm.declarations.forEach((name, declaration) {
if(declaration.simpleName != cm.simpleName) // If is not te constructor
print('${MirrorSystem.getName(name)}:${im.getField(name).reflectee}');
});
}
declaration.simpleName
与
cm.simpleName
进行比较。直到我了解效率低下,因为我们正在比较字符串。
最佳答案
也许有更好的方法,但这应该可以提供您所需要的
cm.declarations.forEach((name, declaration) {
VariableMirror field;
if(declaration is VariableMirror) field = declaration;
MethodMirror method;
if(declaration is MethodMirror) method = declaration;
if(field != null) {
print('field: ${field.simpleName}');
} else if(method != null && !method.isConstructor){
print('method: ${method.simpleName}');
}
});
VariableMirror
或
MethodMirror
后,您可以获得更多属性:
关于dart - 使用Dart中的反射从ClassMirror获取 setter/getter 和/或属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22317924/
我有这个注释 class Target{ final String value; const Target(this.value); } 以及用它注释的 2 个类 @Target("/313"
我试图动态创建这样的类的新实例: this.componentClass.newInstance(new Symbol(''), [this, el]).reflectee; 在this.compon
是否可以判断一个类是否是 ClassMirror 的抽象类?我认为通过 MethodMirror 的方法可以做到这一点,但我没有看到任何方法来确定一个类是否是抽象的。有什么想法吗? 最佳答案 据我所知
我是一名优秀的程序员,十分优秀!