Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展抽象类的Java静态类_Java - Fatal编程技术网

扩展抽象类的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()