EventQueue.invokeLater(new Runnable()
{
public void run()
{
ZipTestFrame frame = new ZipTestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
ответ
Этот код создает экземпляр запускаемого анонимного класса runnable. Этот объект передается как аргумент EventQueue.invokeLater, который будет вызывать его позже (это означает, что он вызовет метод выполнения этого объекта в некоторый более поздний момент времени).
Вам не нужна переменная, указывающая на объект, потому что вы используете этот объект только в этом экземпляре. Метод invokeLater имеет локальную переменную, указывающую на объект (учитывая, что объект передается в качестве аргумента, а аргументы - это локальные переменные), который он использует для хранения объекта в очереди событий, который теперь также ссылается на объект, пока объект вызывается и удаляется из очереди, после чего он становится доступным для сбора мусора.
Добавление:
Примитивный пример того, что простая очередь событий может выглядеть следующим образом:
class MyEventQueue {
Queue<Runnable> queue = new LinkedList<Runnable>();
public void invokeLater(Runnable r) {
queue.add(r);
}
public boolean hasNext() {
return !queue.isEmpty();
}
public void processNext() {
queue.poll.run();
}
}
Вот что выглядит событие, как:
class Event {
Runnable RunnableObject;
public void invokeLater(Runnable runner) {
RunnableObject = runner;
}
/* background thread */
public void thread() {
while (condition) {
if (itsLater) {
RunnableObject->run();
}
}
}
}
Существует асинхронный метод отстайма фасад события, который примет анонимный объект, который вы передали invokeLater, и вызовите его метод run(). Объект все еще существует, он имеет определение - но у него нет ссылки, которую вы можете использовать для последующего опроса, если вы не используете метод run() для передачи этого указателя на что-то еще.
- 1. Как получить объект сокета без ссылочной переменной?
- 2. Вызов статического метода без ссылочной переменной
- 3. Доступ к дате без создания ссылочной переменной
- 4. Освещенность ссылочной переменной C++
- 5. Получение имени ссылочной переменной
- 6. C++ Назначение ссылочной переменной из переданной в ссылочной переменной?
- 7. Что находится внутри ссылочной переменной в Java?
- 8. Внешняя функция ссылочной переменной
- 9. Память ссылочной переменной
- 10. Определение ссылочной переменной стека
- 11. Значение ссылочной переменной в Java
- 12. Что происходит с ссылочной переменной, если удаленный объект ссылки удаляется?
- 13. Как получить адрес ссылочной переменной?
- 14. указывая объект подкласса суперкласса ссылочной переменной
- 15. Что помещает восклицательный знак (!) Перед ссылочной переменной объекта?
- 16. Адрес ссылочной переменной в C++
- 17. Copy Constructor с ссылочной переменной
- 18. jQuery с использованием ссылочной переменной
- 19. PHP: создание копии ссылочной переменной
- 20. Оператор приращения для ссылочной переменной
- 21. java расширяет ключевое слово ссылочной переменной?
- 22. Является супер ссылочной переменной в java?
- 23. Хранение ссылочной переменной (Ссылка на ссылку)
- 24. При создании ссылочной переменной, что мы точно делаем?
- 25. Объем ссылочной переменной в обработчике событий C#
- 26. это ключевое слово в качестве ссылочной переменной
- 27. Использование ссылочной переменной для указания на компаратор?
- 28. Доступ к общей ссылочной ошибке объектной переменной
- 29. AsyncCallback получения значений через ссылочной переменной
- 30. Как изменить свойство объекта с помощью ссылочной переменной?
как он будет вызывать его позже? –
Он помещается в очередь i.e. EventQueue и запускается после того, как обрабатываются элементы, находящиеся впереди в очереди. – user101884