我通过类似代理的便捷类暴露了各种类的一小组方法。我的问题是其中一个方法将实现内部接口的类的实例作为参数。但是,我不希望通过原始类公开该接口,而宁愿通过我的代理提供它。
这是我的意思的一个例子:
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中定义的内部接口隐藏。
答案 0 :(得分:2)
以下应该做的工作:
class C2 {
public interface SomeOtherListener extends SomeListener {
public void interfaceMethod();
}
public static void doAddListener(SomeOtherListener listener) {
C1.addSomeListener(listener);
}
}