我有一個類(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.
}
}
什麼是解決這個問題的最好方法?請記住,我有很多受保護的方法。
移動工具類生活在同一個包。 –