Почему бы вам не сделать это так:
Class permission = android.Manifest.permission.class;
Это работает для меня в моем проекте Android, и я думаю, что это тоже немного аккуратнее. Вы получите ошибку (если есть) время компиляции, а не время выполнения, что также является преимуществом.
EDIT Причина, по которой ваш подход не будет работать: класс android.Manifest.permission
принадлежит другому загрузчику классов. Я провел следующий эксперимент:
Log.i("Tag", "" + android.Manifest.permission.class.getClassLoader());
Log.i("Tag", "" + this.getClass().getClassLoader());
Результат был:
INFO/Tag(281): java.lang.BootClassLoader@4001bde0
INFO/Tag(281): dalvik.system.PathClassLoader[/data/app/com.company.android-2.apk]
Как только два класса имеют разные загрузчики классов, Class.forName
не будет возвращать класс другого.