Załaduj klasę za pomocą odbicia, a następnie edytuj zmienne w czasie wykonywania

Dobra, więc mam plik java, który ładuje inną klasę i chcę, aby plik java mógł edytować i odczytywać zmienne z klasy, która jest uruchomiona.

Na przykład: mam przycisk, który po naciśnięciu ustawia zmienną (jest to plik klasy). Chcę, aby plik java, który ładuje tę klasę, był w stanie zobaczyć nową wartość zmiennej, przeczytaj ją, ustaw i wykonaj wszystko, co jest potrzebne. I chcę, aby nowa wartość, która jest ustawiona, wyświetlała się w uruchomionej klasie java.

To jest to, co próbowałem do tej pory, ale kiedy próbuję edytować wartości, takie jak uzyskiwanie baseX, nie pojawia się w klasie uruchomionej. Ponadto wartość baseX powinna się zmienić, gdy robię rzeczy w klasie uruchomionej, ale rzeczy nie są drukowane na ekranie, gdy je zmieniam. To tak, jakby odbicie nie mogło czytać w czasie wykonywania. Więc co?

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);
            }
        }

Również metody getter / setter działałyby, gdyby działały w środowisku wykonawczym, a ja mogłem to zrobić tak, aby po naciśnięciu przycisku x zmienne y zmieniały się na ekranie. Co to jest fasola java? A co jeśli chciałbym po prostu wywołać metodę i nie uzyskać wartości? A jeśli chciałbym dodać własne metody / kod?

questionAnswers(1)

yourAnswerToTheQuestion