繁体   English   中英

扩展抽象类的Java静态类

[英]Java static class that extends an abstract class

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

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

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()方法。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM