这可能是一个非常愚蠢的问题,但这是我有兴趣实施的模式。
这是我实现的抽象类的基本版本。
public abstract class MyCollection {
public abstract String baseUrl();
public void get(ResponseHandler handler) {
myApi.get(baseUrl(), handler);
}
}
这是我的基本静态集合对象
public class Users extends MyCollection {
@Override
String baseUrl() {
return "/users";
}
}
这就是我希望能够在我的一个控制器中做到的事情
Users.get(new ResponseHandler() {
@Override
public void onSuccess(Object obj) {
//store data
}
@Override
public void onError(Object obj) {
//tell user
}
});
我的问题是Java不允许我访问get
抽象类中的MyCollection
函数。有没有办法让这种模式起作用?它对我来说似乎很漂亮和干净。
答案 0 :(得分:2)
由于以下原因,您无法调用Users.get()
:
- 即使您的MyCollection
类包含静态get()
方法(它不包含它;它包含实例get()
方法),也不会继承静态方法)
- 您的get()
课程中没有静态Users
方法。
这两个组合可以让您更好地了解无法拨打电话的原因。