corda/classpath/java/lang/ThreadLocal.java

37 lines
677 B
Java
Raw Normal View History

2007-07-21 20:44:39 +00:00
package java.lang;
import java.util.Map;
public class ThreadLocal<T> {
private static final Object Null = new Object();
protected T initialValue() {
return null;
}
public T get() {
Map<ThreadLocal, Object> map = Thread.currentThread().locals();
Object o = map.get(this);
if (o == null) {
o = initialValue();
if (o == null) {
o = Null;
}
map.put(this, o);
}
if (o == Null) {
o = null;
}
return (T) o;
}
public void set(T value) {
Map<ThreadLocal, Object> map = Thread.currentThread().locals();
Object o = value;
if (o == null) {
o = Null;
}
map.put(this, o);
}
}