Получить существующий фрейм из имени класса без аргументов командной строки

public class Target extends javax.swing.JFrame {
    private Attacker[] FieldIWant;
    /* constructor and other stuff */
    public static void main(String args[]){
        new Target().setVisible(true);
    }
}

Есть ли способ получить FieldIWant для гарантированно единственного работающего экземпляра Target от объекта атакующего? У меня есть полные имена классов для обоих.

Все остальные методы, которые я нашел, либо дают мне только объект класса вместо экземпляра, либо требуют вмешательства в командную строку для включения JDI.

У нашего класса есть финальный проект, в котором участвуют роботы с оружием, которые не видят друг друга. Наш учитель слегка поощрял «взломать» бегуна, а мое мелкое «я» хочет подарить своему роботу глаза.

🤔 А знаете ли вы, что...
Java в основном используется для разработки приложений для мобильных устройств и веб-приложений.


79
1

Ответ:

Решено

Поскольку Target является подклассом javax.swing.JFrame. вы можете найти все его экземпляры в массиве, возвращаемом Frame.getFrames()

Если существуют другие экземпляры Frame или одного из его подклассов, вам придется перебрать массив и использовать instanceof для идентификации экземпляра Target.

Затем, чтобы получить доступ к полю private, вам придется использовать field = Target.class .getDeclaredField("FieldIWant"); и field.setAccessible(true);.

Видеть