如何只获得类名,而不是完整的path?

我知道使用Context和一个方法getClass().getName()我可以得到一个string,代表完整的类名称,如com.package1.package2.MainActivity

我怎样才能只获得最后一部分,只有类名? 在这种情况下,它将是MainActivitystring。

我可以用一个简单的split()方法来做,但也许有更好的方法,更可靠。

这是你所需要的。

 MainActivity.this.getClass().getSimpleName(); 

为了只获取类的名字,不是完整的path,你将使用这个expression式:

 String className = this.getLocalClassName(); //or String className = getBaseContext().getLocalClassName(); //or String className = getApplicationContext().getLocalClassName(); 

或者,您可以使用:

 private static final String TAG = MainActivity.class.getSimpleName(); 

不pipe你怎么做,你都需要在getClass之上执行额外的操作。 我build议这个分裂:

 String className = xxx.getClass(); int pos = className.lastIndexOf ('.') + 1; String onlyClass = className.substring(pos); 

没有其他解决scheme为我工作,不知道为什么。 我在用着

 this.getClass().getName().replace("$",".").split("\\.")[3] 

缺点:在一个string中,你可以在线程和侦听器中使用它。

(在听我得到像com.djdance.android.main $ 53