扩展抽象类的Java静态类
这可能是一个非常愚蠢的问题,但这是我感兴趣实现的模式 这是我实现的抽象类的基本版本扩展抽象类的Java静态类,java,Java,这可能是一个非常愚蠢的问题,但这是我感兴趣实现的模式 这是我实现的抽象类的基本版本 public abstract class MyCollection { public abstract String baseUrl(); public void get(ResponseHandler handler) { myApi.get(baseUrl(), handler); } } 这是我的基本静态收集对象 public class Users extends My
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不允许我访问
MyCollection
抽象类中的get
函数。有没有办法让这种模式发挥作用?在我看来,它是如此的美丽和干净 由于以下原因,您无法调用Users.get()
:
--静态方法不会被继承,即使您的MyCollection
类将包含一个静态get()
方法(它不包含该方法;而是包含一个实例get()
方法)
--在Users
类中没有静态的get()
方法
这两种方法的结合应该能让你更好地理解为什么你不能打那个电话。你的意思是让
用户
扩展MyCollection
而不是MyModel
?为什么你的标题提到了一个静态类,而问题中却没有一个静态类的迹象MyCollection.get
是一个实例方法,但您试图调用它,就好像它是一个静态方法一样。很难理解您在这里所追求的是什么……您正在将实例方法作为静态方法调用Users.get()