Java思考:获取类而不是子类型

时间:2015-09-25 12:29:05

标签: java reflection

我从org.reflections升级:reflect:0.9.5到版本0.9.9。我正在使用:

func heightOfString(text: NSString!, width: CGFloat, font: UIFont) -> CGFloat{
    var ch:CGFloat!
    var size:CGSize = CGSizeMake(width, CGFloat.max)

    var tdic:NSDictionary = NSDictionary(objects: [font, NSFontAttributeName], forKeys: [])
    size = text.boundingRectWithSize(size, options: NSStringDrawingOptions.UsesFontLeading , attributes: [String : AnyObject]?, context: nil).size
    ch = size.height
    return ch

}

使用Reflections reflectionPaths = new Reflections("resources", new TypeAnnotationsScanner()); Set<Class<?>> rootResourceClasses = reflectionPaths.getTypesAnnotatedWith(Path.class); 注释获取resources包中的所有类。 由于库已更新,因此顶行需要额外@Path才能运行代码。但是我不希望返回子类型。

如何使用这个新版本的库来仅撤回非子类型的类和接口?

如果我不包含SubTypesScanner

,我会收到此例外
new SubTypesScanner()

2 个答案:

答案 0 :(得分:8)

我相信你使用这个注释“javax.ws.rs.Path”。请试试这个: -

Reflections reflectionPaths = new Reflections("resources", new TypeAnnotationsScanner());
Set<Class<?>> rootResourceClasses = reflectionPaths.getTypesAnnotatedWith(Path.class, true);

答案 1 :(得分:0)

不确定是否有帮助,但是我遇到了Scanner SubTypesScanner was not configured错误,当我更新一个完全不相关的lib时开始出现该错误。

我发现that message的某个人正在寻找类似的错误,发现当路径完全为空时(不是我的情况),并且如果所寻找的人的基类不在其中,则抛出该异常。扫描的包裹(我的箱子)。

我不知道为什么它曾经可以工作,或者为什么它停止过,但是我在扫描仪中添加了丢失的软件包,然后它又开始工作了。