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

Создает ли Proxy новый объект того же типа, что и исходный проксируемый объект

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

Пример:

java
interface Service {
    void doWork();
}

class RealService implements Service {
public void doWork() {
System.out.println("Real work");
}
}

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

proxy.doWork(); // Вызовет перехваченный метод

text
Proxy работает только с интерфейсами, а не с конкретными классами. Для классов можно использовать библиотеки вроде CGLIB.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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