Как получить только имя класса, а не полный путь?

Я знаю, что использование Context и метода getClass().getName() Я могу получить строку, которая представляет полное имя класса, например com.package1.package2.MainActivity .

Как я могу получить только последнюю часть, только имя класса? В этом случае это будет строка MainActivity .

Я могу сделать это с помощью простого метода split() , но, возможно, есть лучший способ, более надежный.

Solutions Collecting From Web of "Как получить только имя класса, а не полный путь?"

Это все, что вам нужно.

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

Чтобы получить только имя класса, а не полный путь, вы будете использовать это выражение:

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

В качестве альтернативы вы можете использовать:

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

Независимо от того, как вы это делаете, вам нужно выполнить дополнительную операцию поверх getClass. Я бы порекомендовал это по расколу:

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

Для меня нет других решений, не знаю почему. я использую

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

Минусы: в одной строке, и вы можете использовать ее в потоках и прослушивателях.

(В listeres я получаю что-то вроде com.djdance.android.main $ 53 )