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

Получает ли Proxy объект в конструктор

Proxy в Java получает InvocationHandler в конструктор, а не сам целевой объект. InvocationHandler содержит логику перехвата вызовов методов. Целевой объект передается в InvocationHandler при его создании.

Пример:

java
interface Service {
    void doWork();
}

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

class MyHandler implements InvocationHandler {
private final Object target;

text
public MyHandler(Object target) {
    this.target = target;
}

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    System.out.println("Before method");
    return method.invoke(target, args);
}

}

// Использование:
Service real = new RealService();
Service proxy = (Service) Proxy.newProxyInstance(
Service.class.getClassLoader(),
new Class[]{Service.class},
new MyHandler(real)
);

text
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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