Конечно, вы можете указать два или более интерфейсов, если хотите:
Object o = Proxy.newProxyInstance(
A.class.getClassLoader(),
new Class<?>[] { A.class, A.B.class },
new PassThrough());
Единственная «проблема» состоит в том, что нет способа объявить переменную с пересечением тип. В текущих версиях Java вы можете выполнить шаг, используя var
:
var ab = (A & A.B) o;
ab.a();
bb.b();
В предыдущих версиях Java вам пришлось бы объявлять две разные переменные, которые обе ссылаются на объект ab
вы создали Например:
A a = (A) o;
A.B b = (A.B) o;
a.a();
b.b();