我有一个包含java对象弱引用的列表。
如何编写一个方法,获取实际对象实例并从该列表中删除它的弱引用?
谢谢。
不太清楚您的意思,但我认为您可能想要:
public static <T> void removeReference(List<WeakReference<T>> list,
T reference)
{
for (Iterator<WeakReference<T>> iterator = list.iterator();
iterator.hasNext(); )
{
WeakReference<T> weakRef = iterator.next();
if (weakRef.get() == reference)
{
iterator.remove();
}
}
}
if (weakRef.get() == null)
? - Eduardo Bezerrapublic class HardReference<T> {
private final T _object;
public HardReference(T object) {
assert object != null;
_object = object;
}
public T get() { return _object; }
public int hashCode() { return _object.hashCode(); }
public boolean equals(Object other) {
if (other instanceof HardReference) {
return get() == ((HardReference) other).get();
}
if (other instanceof Reference) {
return get() == ((Reference) other).get();
}
return get() == other;
}
}
class WeakRefWithEquals<T> extends WeakReference<T> {
WeakRefWithEquals(T object) { super(object); }
public boolean equals(Object other) {
if (other instanceof HardReference) {
return get() == ((HardReference) other).get();
}
if (other instanceof Reference) {
return get() == ((Reference) other).get();
}
return get() == other;
}
}
param.equals(element)
替代
element.equals(param)