java - 为什么在实现接口(interface)的方法内部分配实例变量在从同一类的另一个本地方法调用它时不起作用?

标签 java android oop

我有一个名为“A”的类实现接口(interface)“I”,如下所示

public interface I<T>{
   void setList(List<T> list)
}

public class A implements I<M>{
   private List<M> mList;

   public void load(){
      //Working on mList....
   }

   public void method(){
      someList;
      I<M> i = this;
      i.setList(someList);
   }

   public void setList(List<M> list){
      this.mList = list;
   }

}

public class M{
   private String str;
}

我想将列表的值分配给 mList 并在类内的任何位置使用它,但是该值将在重写方法内分配,但是当我在任何其他方法(如 load)中使用 mList 时,它不会给我该值。

最佳答案

终于我找到了我应该做的解决方案,如下所示

public interface I<T>{
   void setList(List<T> list)
}

public class A implements I<M>{
   private List<M> mList;
   I<M> i;

   public A(){
      this.i = this;
   }

   public void load(){
      //Working on mList....
   }

   public void method(){
      someList;
      i.setList(someList);
   }

   public void setList(List<M> list){
      this.mList = list;
   }

}

public class M{
   private String str;
}

关于java - 为什么在实现接口(interface)的方法内部分配实例变量在从同一类的另一个本地方法调用它时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60159675/

相关文章:

java - 抽象工厂模式依赖于对象组合?

oop - 如何向过程程序员教授面向对象编程?

java - JSP mysql 和 utf8

java - 我有一个函数,在其中我正在使用匿名类运行一个线程,那么如何将值返回给该函数

android - Chrome For Android - 如何拦截证书选择

android - Adwhirl SDK 始终返回 'Networkname - failure' ;适配器,调用句柄,一切正常

Javascript OOP 文字访问方法内的变量

java - 如何在windows下用java运行linux程序?

java - 如果我忘记了 key ,如何获取原文

java - 激活/停用复选框 Java Swing