我创建了一个Object:
public class Info {
private ArrayList<Object> list;
public Info(){
this.list = new ArrayList<>();
}
public Info getInfo(){
return this;
}
public void put(final byte[] macAddress, final String name) {
HashMap<byte[], String> map = new HashMap<>();
map.put(macAddress,name);
list.add(map);
}
public ArrayList getList(){
return list;
}
}
和我在班级中的新信息
Info info = new Info();
info.put(mAddress1,mName1);
info.put(mAddress2,mName2);
但我想从另一个类中获取此对象。我怎样才能得到这个对象?(我只创建/新建一次)
答案 0 :(得分:2)
<强> 1。使Info类单例
public class Info {
public static Info info;
private ArrayList<Object> list;
public static Info getInstance(){
if(info == null)
info = new Info();
return info;
}
private Info(){
this.list = new ArrayList<>();
}
public void put(final byte[] macAddress, final String name) {
HashMap<byte[], String> map = new HashMap<>();
map.put(macAddress,name);
list.add(map);
}
public ArrayList getList(){
return list;
}
}
<强> 2。使用强>
Info info = Info.getInstance();
info.put(mAddress1,mName1);
info.put(mAddress2,mName2);
答案 1 :(得分:0)
如果你想要同一个对象。尝试使用HashMap并实现equals和hashCode方法并基于key获取对象。 另一个想法
在另一个类中创建Info类的实例变量,并在参数化构造函数中创建实例时发送此info对象并分配该值
假设你另一个班级是ABC
Info info = new Info();
info.put(mAddress1,mName1);
info.put(mAddress2,mName2);
ABC abc=new ABC(info);
class ABC{
Info info;
public ABC(Info info)
this.info=info
}
答案 2 :(得分:0)
您需要阅读Singleton Class。
单例模式是一种限制条件的设计模式 将类实例化为一个对象。这完全有用 需要一个对象来协调整个系统的行动
it's not an alternative to LSA.