Загрузите класс, используя отражение, затем отредактируйте переменные во время выполнения
Итак, у меня есть файл Java, который загружает другой класс, и я хочу, чтобы файл Java мог редактировать и читать переменные из класса, который работает.
Например: У меня есть кнопка, которая при нажатии устанавливает переменную (это файл класса). Я хочу, чтобы файл Java, который загружает этот класс, мог видеть новое значение переменной, читать его, устанавливать его и делать все, что нужно. И я хочу новое значение, которое будет отображаться в работающем классе Java.
Это то, что я пробовал до сих пор, но когда я пытаюсь отредактировать значения, такие как получение baseX, он не отображается в рабочем классе. Кроме того, значение baseX должно измениться, когда я выполняю какие-либо действия в классе выполнения, но эти вещи не выводятся на экран, когда я их изменяю. Это как если бы отражение не могло читать вещи во время выполнения. Так что же?
Class c = Class.forName("Client");
for (Method m : c.getMethods()) {
if (m.getName().contentEquals("main")) {
Object[] passedArgs = { args };
m.invoke(null, passedArgs);
}
}
Object instance = c.newInstance();
Field baseX = c.getField("baseX");
Field loggedIn = c.getField("loggedIn");
boolean gotValues = false;
while(!gotValues) {
boolean loggedin = loggedIn.getBoolean(instance);
if(loggedin) {
System.out.println(baseX.get(instance));
} else {
System.out.println(loggedin);
loggedIn.setBoolean(instance, true);
}
}
Также да, методы getter / setter будут работать, если они будут работать во время выполнения, и я мог бы сделать так, чтобы при нажатии кнопки x на экране изменялась переменная y. Что такое боб Java? И что, если я хочу просто вызвать метод, а не получить значение? Или что, если я хочу добавить свои собственные методы / код?