@ mhaller: слишком долго для комментария к вашему посту. Очевидно, что потребуется дополнительная доработка для работы с перегруженными методами, но это не невозможно.
import java.lang.reflect.Method;
public class Hack {
public static void main (String[] args) {
(new Hack()).foobar();
}
public void foobar () {
Method here = getCurrentMethod(this);
System.out.format("And here we are: %s\n", here);
}
public static final Method getCurrentMethod(Object o) {
String s = Thread.currentThread().getStackTrace()[2].getMethodName();
Method cm = null;
for(Method m : o.getClass().getMethods()){
if(m.getName().equals(s)){
cm = m; break;
}
}
return cm;
}
}
[редактировать: кредит / спасибо Александру Приймаку за обнаружение ошибки в main ()]