Java动态代理混淆

时间:2018-04-21 14:31:17

标签: java

是否可以让接口(A)扩展另一个接口(B)并使用实现接口(B)的类的方法?这是动态代理的全部意义吗?

说我们有

public interface A {
    String getMessage();
}

public class AImpl implements A{
    String msg = "Hello World";

    @Override
    String getMessage(){
        return this.msg;
    }
}

public interface B extends A {
}

public class main {

   B b;
   public main(B b){
      this.b = new B();
   } 

   System.out.println(b.getMessage()); // prints "Hello World"
}

1 个答案:

答案 0 :(得分:1)

动态代理是关于创建一个对象,它在接收if对象而不是仅实现这些接口的意义上“动态地”实现某些接口。

通常在1)确定在运行时以某种方式使用哪些接口时使用它;或2)具有非常大的接口,其中许多方法可以类似地实现。

此代码与动态代理无关。您可以使用代理来执行您的要求(但您为什么要这样做?):

Method