java - 无法获取父类(super class)中定义的上下文

标签 java android

我有一个 super 类:

public abstract class AsyncRequest {
  private Context context;
  public AsyncRequest(Context context) {
    this.context = context;
  }
  public Context getContext() {
    return this.context;
  }
  protected abstract String getHost();
}

还有两个子类:

public abstract class IRequest extends AsyncRequest{
  IRequest(Context context) {
    super(context);
  }
  @Override
  public String getHost() {
    return getHostFromSharedPreferences();
  }
  private String getHostFromSharedPreferences(){
    SharedPreferences preferences = ((Activity) getContext()).getPreferences(Context.MODE_PRIVATE);
    return preferences.getString(IPresenter.SP_HOST,"");
  }
}

public class LoginRequest extends IRequest{
   public LoginRequest(Context context, String name, String password) {
     super(context);
   }
}

当我初始化 LoginRequest 并使用 getContext() 获取 IRequest 中的上下文时,我得到 NullPointerException.

不知道为什么,有人知道吗?

最佳答案

确保在实例化 LoginRequest 时将 非 null Context 作为参数发送 LoginRequest(上下文上下文,字符串名称,字符串密码)

关于java - 无法获取父类(super class)中定义的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234770/

相关文章:

java - 使用quartz jdbcstore 得到 SQLException 表不存在

java - 将 OCL 表达式解析为 AST(抽象语法树)

android - 无法将 child 添加到 linearLayout

android - 在不调用 onNavigationItemSelected 方法的情况下突出显示 BottomNavigationView 中的菜单项

java - 在 Java 正则表达式中处理美元字符的最佳方法

java - 用对象对列表进行排序?

java - 如何将值从 Thymeleaf 传递到 Ajax 调用

java - Android Tabhost刷新

java - Room 数据库、RecyclerView 和并发问题

java - 如何访问android服务中的外部类成员?