Oracle advise using AtomicReference for any threaded cases, and we have MutableObject for other cases. I'm very dubious about adding a second version of the same class. Stephen Limited mobile access
On 11/09/2011, Henri Yandell (JIRA) <j...@apache.org> wrote: > > [ > https://issues.apache.org/jira/browse/LANG-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13102209#comment-13102209 > ] > > Henri Yandell commented on LANG-577: > ------------------------------------ > > Also, iiuc, while the interface might be the overlapping, the > implementations won't be. > > I'm +1 for the feature. > > Matt called it a StrongReference - would that be a better name? Or is that > implementation dependent (ie: MemoryReference would be a strong reference, > but ObjectReference could be multiple types?) > >> Add ObjectReference interface and two implementations >> ----------------------------------------------------- >> >> Key: LANG-577 >> URL: https://issues.apache.org/jira/browse/LANG-577 >> Project: Commons Lang >> Issue Type: New Feature >> Components: lang.* >> Reporter: Joerg Schaible >> Assignee: Joerg Schaible >> Priority: Minor >> Fix For: 3.x >> >> Attachments: reference.diff >> >> >> In some situations it would be helpful to use a reference to an object, >> e.g. for parameters by reference >> {code:java} >> void doSomething(ObjectReference<String> ref) { >> ref.set("Hello"); >> } >> {code} >> or for anonymous methods >> {code:java} >> final ObjectReference<String> ref = new MemoryReference<String>(); >> final Runnable r = new Runnable() { >> void run() { >> ref.set("Hello"); >> } >> } >> r.run(); >> {code} >> Additionally it is sometimes useful to keep the reference in other places >> than in shared memory, e.g. in a ThreadLocal or in case of a web >> application in a scoped reference or even in combination with some other >> persistence mechanism. Basically I am proposing the interface >> ObjectReference: >> {code:Java} >> /** >> * Interface to reference an object. >> * >> * @param <T> the type of the referenced object >> * @author Apache Software Foundation >> * @since 3.0 >> */ >> public interface ObjectReference<T> { >> /** >> * Getter for the referenced object. >> * >> * @return the object or <code>null</code> >> */ >> T get(); >> /** >> * Setter for the reference. >> * >> * @param object the object to reference (may be <code>null</code>) >> */ >> void set(T object); >> } >> {code} >> and the two implementations MemoryReference and ThreadLocalReference in >> the new package org.apache.commons.lang3.reference. I've seen such or >> similar types in various libraries. >> Comments? >> Unit test will be provided also. > > -- > This message is automatically generated by JIRA. > For more information on JIRA, see: http://www.atlassian.com/software/jira > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org