作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个注释
class Target{
final String value;
const Target(this.value);
}
以及用它注释的 2 个类
@Target("/313")
class c1{
}
@Target("/314")
class c2{
}
如何获取具有 Target 注释的类的 ClassMirror
实例列表?
基于所选的答案,即如果我知道我的类(class)存在于哪个图书馆
var mirrorSystem = currentMirrorSystem();
var libraryMirror = mirrorSystem.findLibrary(#testlib);
for(ClassMirror classMirror in libraryMirror.declarations.values){
if(classMirror.metadata!=null){
for(var meta in classMirror.metadata){
if(meta.type == reflectClass(Path)){
print(classMirror.simpleName);
print(meta.getField(#value));
}
}
}
}
最佳答案
这将搜索当前隔离中的所有库,以查找使用 @Target('/313') 注释的类
@MirrorsUsed(metaTargets: Target) // might be necessary when you build this code to JavaScript
import 'dart:mirrors';
class Target {
final String id;
const Target(this.id);
}
@Target('/313')
class c1{
}
@Target('/314')
class c2{
}
@Target('/313')
@Target('/314')
class c3{
}
void main() {
MirrorSystem mirrorSystem = currentMirrorSystem();
mirrorSystem.libraries.forEach((lk, l) {
l.declarations.forEach((dk, d) {
if(d is ClassMirror) {
ClassMirror cm = d as ClassMirror;
cm.metadata.forEach((md) {
InstanceMirror metadata = md as InstanceMirror;
if(metadata.type == reflectClass(Target) && metadata.getField(#id).reflectee == '/313') {
print('found: ${cm.simpleName}');
}
});
}
});
});
}
found: Symbol("c3")
found: Symbol("c1")
关于dart - 获取所有具有注释的类的 ClassMirror 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24457283/
我有这个注释 class Target{ final String value; const Target(this.value); } 以及用它注释的 2 个类 @Target("/313"
我试图动态创建这样的类的新实例: this.componentClass.newInstance(new Symbol(''), [this, el]).reflectee; 在this.compon
是否可以判断一个类是否是 ClassMirror 的抽象类?我认为通过 MethodMirror 的方法可以做到这一点,但我没有看到任何方法来确定一个类是否是抽象的。有什么想法吗? 最佳答案 据我所知
我是一名优秀的程序员,十分优秀!