Встречается на собеседованиях • сегодня

Создаешь ли новый класс при проксировании объекта

Да, при проксировании объекта в Java обычно создается новый класс динамически во время выполнения. Это делается с помощью Proxy.newProxyInstance(), который генерирует прокси-класс, реализующий указанные интерфейсы.

Пример:

java
interface Service {
    void doWork();
}

Service realService = new Service() {
@Override
public void doWork() {
System.out.println("Real work");
}
};

Service proxy = (Service) Proxy.newProxyInstance(
Service.class.getClassLoader(),
new Class[]{Service.class},
(p, method, args) -> {
System.out.println("Before method");
return method.invoke(realService, args);
}
);

proxy.doWork(); // Выведет "Before method" и "Real work"

text

Прокси-класс не наследует оригинальный класс, а только реализует его интерфейсы. Для проксирования классов (без интерфейсов) используются библиотеки, например, CGLIB или ByteBuddy.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы