我是Java的新手,我正在尝试访问与其他类不同类的ArrayList和TreeSet。 我知道这种从一个班级访问它的方式。
这是我有TreeSet的班级
public class Gestor {
private TreeSet<User> gestorTSusers;
public Gestor (){
this.gestorTSusers = new TreeSet<>();
}
public TreeSet<User> getGestorTSusers() {
return gestorTSusers;
}
public void setGestorTSusers(TreeSet<User> gestorTSusers) {
this.gestorTSusers = gestorTSusers;
}
}
现在我知道我需要这样的东西才能访问另一个类上的TreeSet:
public class MainActivity extends AppCompatActivity {
private TextView tv1,tv2,tv3;
private ArrayList<Obj> ts;
private Gestor gestor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
gestor = new Gestor();
gestor.getGestorTSusers()...
}
private void findViews() {
this.tv1 = findViewById(R.id.tv1);
this.tv2 = findViewById(R.id.tv2);
this.tv3 = findViewById(R.id.tv3);
}
}
在上面,我正在创建一个新的Gestor以访问内部的TreeSet
,但是现在我想访问完全相同 TreeSet
,我在这里工作但在另一个班级。如果我只是喜欢
private Gestor gestor;
this.gestor.get....
我是否在同一个TreeSet
上工作?
上下文会以某种方式有用吗?
做这样的事情的最好,最有效的方法是什么?
对不起,我知道这看起来很糟糕,但这是我第一次问这个问题,请给我一个机会。
答案 0 :(得分:1)
如果我正确理解您的问题,则只需要一个Gestor实例,并在多个类中使用它。当使Gestor为单例时,您将有与Trees绑定的相同TreeSet <...>实例。尝试了解单例设计模式在这里https://www.oodesign.com/singleton-pattern.html的含义。
答案 1 :(得分:0)
您需要在gestor对象中设置树集,如下所示。
Gestor gestor = new Gestor();
gestor.setGestorTSusers(treeSetYouWantToUse)
您还可以在Gestor类中创建一个采用树集的构造函数
public class Gestor {
private TreeSet<User> gestorTSusers;
public Gestor (TreeSet treeSetYouWantToUse){
this.gestorTSusers = treeSetYouWantToUse;
}
public TreeSet<User> getGestorTSusers() {
return gestorTSusers;
}
public void setGestorTSusers(TreeSet<User> gestorTSusers) {
this.gestorTSusers = gestorTSusers;
}
}