有可能"覆盖"通过代理类的接口?

时间:2014-05-26 15:19:30

标签: java oop interface proxy

我通过类似代理的便捷类暴露了各种类的一小组方法。我的问题是其中一个方法将实现内部接口的类的实例作为参数。但是,我不希望通过原始类公开该接口,而宁愿通过我的代理提供它。

这是我的意思的一个例子:

Class C1 {
   public static void addSomeListener(SomeListener listener) {
       // Some code
   }

    public interface someListener {
        public void interfaceMethod();
    }
}

Class C2 {
    public interface someListener {
        public void interfaceMethod();
    }

    public static void doAddListener(SomeListener listener) {
        // The compiler, of course, complains here
        C1.addSomeListener(listener);
    }
 }

我想知道是否有可能“覆盖”该接口,以便C2的接口可以暴露给用户/开发人员,同时仍然保持C1中定义的内部接口隐藏。

1 个答案:

答案 0 :(得分:2)

以下应该做的工作:

class C2 {
    public interface SomeOtherListener extends SomeListener {
        public void interfaceMethod();
    }

    public static void doAddListener(SomeOtherListener listener) {
        C1.addSomeListener(listener);
    }
 }