Как я могу получить имя метода, как будто я могу получить имя класса? (RandomClass.class.getName())Как получить имя метода без использования class.getDeclaredMethod
Hardcoding не будет работать, потому что обфускатор уничтожает его.
Причина: методы Я инъекционные, как это:
MethodNode getLocalPlayer = GetterAdapter.insert(false, true, "getLocalPlayer", "Lvanquish/accessors/Player;", "client", "yD", "LQZ;");
classNode.methods.add(getLocalPlayer);
//class client implements my interface which contains the method getLocalPlayer
public interface Client {
public int[] getPlayerIndices();
public Player getLocalPlayer();
public Player[] getPlayers();
public int getBaseX();
public int getBaseY();
public int getCameraX();
public int getCameraY();
}
//when I obfuscate my files getLocalPlayer get's a name like a2
//when you look above you see that the method name was hard code and so
// will it create an error
Заявленный способ не будет работать здесь, потому что я не знаю имя метода и есть как 4 Варс одного и того же типа.
Будет ли это работать, или это будет беспорядок?
@DataMap.varDetails(name = "getPlayerIndices")
public int[] getPlayerIndices();
Вы можете выбросить исключение, поймать его и посмотреть на трассировку стека. Просто шутите, не ... – eran
http://stackoverflow.com/questions/3864175/how-to-get-the-name-of-method-in-current-class?rq=1 – MGorgon
Зачем вам нужно к? (Это звучит как проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –