我有一个类(Capsule),它有很多方法(30+)被保护。这个想法是允许开发者扩展这个类并在类中使用受保护的方法(ImADev),但是让开发者公开它们(覆盖方法,因为他们认为合适)。Java:简单的方法来公开受保护的方法
我现在有一个使用案例,我想对这些对象传递到几个实用工具类/方法,并允许他们访问受保护的方法..除非他们是受保护的,所以我的实用工具类/服务能够”不要看他们。
请参见下面的例子:
// My Capsule class with protected methods
public abstract class Capsule {
public Capsule(..) { .. }
protected String getFoo() { return "foo"; }
}
// How a dev should use the class
public class ImADev extends Capsule {
public ImADev(..) { super(..); }
public String getBar() { this.getFoo() + "BAR");
}
// A special utility class
// Helper.helper() can accept any class derived from Capsule
public class Helper {
public String helper(Capsule c) {
return " im doing something awesome with " + c.getFoo();
// Except i cant do this, because c.getFoo() is protected.
}
}
什么是解决这个问题的最好方法?请记住,我有很多受保护的方法。
2012-05-24
empire29
+0
移动工具类生活在同一个包。 –