扩展抽象类的Java静态类

时间:2013-12-06 23:01:24

标签: java

这可能是一个非常愚蠢的问题,但这是我有兴趣实施的模式。

这是我实现的抽象类的基本版本。

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函数。有没有办法让这种模式起作用?它对我来说似乎很漂亮和干净。

1 个答案:

答案 0 :(得分:2)

由于以下原因,您无法调用Users.get()

- 即使您的MyCollection类包含静态get()方法(它不包含它;它包含实例get()方法),也不会继承静态方法)

- 您的get()课程中没有静态Users方法。

这两个组合可以让您更好地了解无法拨打电话的原因。