[errorprone] Directly implement functional interface
instead of saving it in a lambda. Prefer to implement the functional interface method directly and use a method reference instead. See https://errorprone.info/bugpattern/UnnecessaryLambda Change-Id: I7f7ebd27cd6354545c157960718d9845882e1732
This commit is contained in:
parent
ba2f9affc6
commit
d0b9ab1c4a
|
@ -146,44 +146,46 @@ public class PackWriter implements AutoCloseable {
|
||||||
private static final Map<WeakReference<PackWriter>, Boolean> instances =
|
private static final Map<WeakReference<PackWriter>, Boolean> instances =
|
||||||
new ConcurrentHashMap<>();
|
new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private static final Iterable<PackWriter> instancesIterable = () -> new Iterator<>() {
|
private static Iterator<PackWriter> instancesIterable() {
|
||||||
|
return new Iterator<>() {
|
||||||
|
|
||||||
private final Iterator<WeakReference<PackWriter>> it = instances
|
private final Iterator<WeakReference<PackWriter>> it = instances
|
||||||
.keySet().iterator();
|
.keySet().iterator();
|
||||||
|
|
||||||
private PackWriter next;
|
private PackWriter next;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasNext() {
|
public boolean hasNext() {
|
||||||
if (next != null) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
while (it.hasNext()) {
|
|
||||||
WeakReference<PackWriter> ref = it.next();
|
|
||||||
next = ref.get();
|
|
||||||
if (next != null) {
|
if (next != null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
it.remove();
|
while (it.hasNext()) {
|
||||||
|
WeakReference<PackWriter> ref = it.next();
|
||||||
|
next = ref.get();
|
||||||
|
if (next != null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PackWriter next() {
|
public PackWriter next() {
|
||||||
if (hasNext()) {
|
if (hasNext()) {
|
||||||
PackWriter result = next;
|
PackWriter result = next;
|
||||||
next = null;
|
next = null;
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
throw new NoSuchElementException();
|
||||||
}
|
}
|
||||||
throw new NoSuchElementException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void remove() {
|
public void remove() {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all allocated, non-released PackWriters instances.
|
* Get all allocated, non-released PackWriters instances.
|
||||||
|
@ -191,7 +193,7 @@ public void remove() {
|
||||||
* @return all allocated, non-released PackWriters instances.
|
* @return all allocated, non-released PackWriters instances.
|
||||||
*/
|
*/
|
||||||
public static Iterable<PackWriter> getInstances() {
|
public static Iterable<PackWriter> getInstances() {
|
||||||
return instancesIterable;
|
return PackWriter::instancesIterable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|
Loading…
Reference in New Issue