Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
4. А существует ли более быстрый способ узнать имя вызывающего класса?
А кстати в android.util.Log уровни сделаны константами, а не энамом.
1. Рефлексия — это плата за удобство использования.В целом согласен — использовать удобно. Но нельзя ли в Android использовать compile-time аспекты? Может что то вроде AspectJ CTW? Может с этим получится сделать быстрое получение имени метода и класса? Т.е. при компиляции аспектов получать имя метод и класса у вызывающего кода и дальше его использовать. Конечно, будет сложнее чем сейчас — нужно будет компиляцию настраивать в gradle, но зато perfomance будет лучше.
...
public void print(int i, String s, String s1)
{
try
{
if(loaded)
mLogMethods[i].invoke(null, new Object[] {
s, s1
});
return;
}
...
Там было все что только можно было запихнуть — и retrolambda/java8
Простая и очевидная замена android.util.Log