Java 如何从不同的类中获得确切的对象?

Java 如何从不同的类中获得确切的对象?,java,android,Java,Android,我创建一个对象: 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 Str

我创建一个对象:

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;
    }

但是我想从另一个类中获取这个对象。如何获取此对象?(我只创建/新建一次)

如果您想要相同的对象。尝试使用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
}

如果你想要相同的对象。尝试使用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
}

1。将信息类设置为singleton

    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;
      }
    }

1。将信息类设置为singleton

    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;
      }
    }
你需要了解一下

singleton模式是一种限制 将类实例化为一个对象。这是非常有用的 需要一个对象来协调整个系统中的操作

公共类信息{
私人信息(){
//存在只是为了阻止实例化。
this.list=new ArrayList();
}
公共静态信息=null;
公共静态信息getinstance(){
如果(info==null)info=newinfo();
退货信息;
}
私有数组列表;
公共信息(){
this.list=new ArrayList();
}
公共信息getInfo(){
归还这个;
}
公共void put(最终字节[]macAddress,最终字符串名){
HashMap=newHashMap();
map.put(macAddress,name);
列表。添加(地图);
}
公共ArrayList getList(){
退货清单;
}
您需要了解

singleton模式是一种限制 将一个类实例化为一个对象。当 需要一个对象来协调整个系统中的操作

公共类信息{
私人信息(){
//存在只是为了阻止实例化。
this.list=new ArrayList();
}
公共静态信息=null;
公共静态信息getinstance(){
如果(info==null)info=newinfo();
退货信息;
}
私有数组列表;
公共信息(){
this.list=new ArrayList();
}
公共信息getInfo(){
归还这个;
}
公共void put(最终字节[]macAddress,最终字符串名){
HashMap=newHashMap();
map.put(macAddress,name);
列表。添加(地图);
}
公共ArrayList getList(){
退货清单;
}

从其他类方式获取对象?是否要使类信息成为单例?您可以在intent中使用parcelable实现此目的您只需在任何类中创建一次,然后使用parcelable将该对象传递给intent即可从其他类方式获取对象?是否要使类信息成为单例?您可以在inte中使用parcelable实现此目的n您只需在任何类中创建一次,然后使用parcelable将该对象传递给intent
public class Info {
    private Info(){
    // Exists only to defeat instantiation.
      this.list = new ArrayList<>();
    }
    public static Info info = null;

    public static Info getinstance(){
        if(info == null) info = new Info();

        return 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;
    }