如果一個類實現了一個接口,如何在沒有完全限定的包的情況下獲得類實現的名稱?如何從帶有接口引用的類中獲取簡單的類名?
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'作爲輸出?
['Class.getSimpleName()'](http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getSimpleName())應該適用於所有'Class'對象,不管它是否來自「接口類型」或不是。 – 2013-04-08 11:14:15
是的,'text.getClass()。getSimpleName()'應該編譯好。 – 2013-04-08 11:16:17
問題可能在代碼中的其他地方。獲得更多的上下文將會有所幫助。 – NilsH 2013-04-08 11:16:56