I would like to share an object between various instances of objects of the same class.
Conceptually, while my program is running, all the objects of class A access
Assuming everything is in the same class loader, then why not use the monostate pattern to do this?
Your shared static is hidden in the monostate:
public class Monostate { private static String str = "Default"; public String getString() { return str; } public void setString(String s) { str = s; } }
Then you are free to create as many instances of the monostate as you like, but they all share the same underlying object due to the static reference.
Monostate mono = new Monostate(); mono.setString("Fred"); System.out.println(mono.getString());