如果一个类实现了一个接口,如何在没有完全限定的包的情况下获取类实现的名称?
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'作为输出?
答案 0 :(得分:3)
因此,这应该可以正常工作,我只提出了以下解决方法:
String name = text.getClass().getName();
name = name.substring(name.lastIndexOf(".") + 1);
评论我是否会做得更好......
答案 1 :(得分:3)
如果您使用的是&gt; 2.4的GWT SDK,即2.5.x
Class.getSimpleName()
现在supports。