簡體   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