[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:
Matthias Sohn 2023-09-20 09:59:30 +02:00
parent ba2f9affc6
commit d0b9ab1c4a
1 changed files with 31 additions and 29 deletions

View File

@ -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")