< prev index next >

src/java.base/share/classes/java/lang/ThreadLocal.java

Print this page

        

*** 169,178 **** --- 169,199 ---- } return setInitialValue(); } /** + * Returns the value in the current thread's copy of this + * thread-local variable. If the variable has no value for the + * current thread, null is returned and no value is initialized. + * + * @return the current thread's value of this thread-local or null + */ + T getIfPresent() { + Thread t = Thread.currentThread(); + ThreadLocalMap map = getMap(t); + if (map != null) { + ThreadLocalMap.Entry e = map.getEntry(this); + if (e != null) { + @SuppressWarnings("unchecked") + T result = (T)e.value; + return result; + } + } + return null; + } + + /** * Variant of set() to establish initialValue. Used instead * of set() in case user has overridden the set() method. * * @return the initial value */
< prev index next >