3

如果一个类实现了一个接口,如果没有完全限定的包,我如何获得类实现的名称?

interface HasText;
class Base extends HasText;

List<HasText> texts;

for (HasText text : texts) {
     //Error: The method getSimpleName() is undefined for the type Class<capture#1-of ? extends HasText>
     Sysout(text.getClass().getSimpleName());

     //prints: my.package.to.Base
     Sysout(text.getClass().getName());
}

如何在没有包声明的情况下仅获取“Base”作为输出?

4

2 回答 2

3

因此,这通常应该有效,我只提出了以下解决方法:

String name = text.getClass().getName();
name = name.substring(name.lastIndexOf(".") + 1);

如果我可能做得更好,请评论...

于 2013-04-08T11:19:38.987 回答
3

如果您使用 >2.4 的 GWT SDK,即2.5.x Class.getSimpleName() 现在支持.

于 2013-04-08T11:40:22.317 回答