Replace `NumberGetter` with `ToIntFunction`
PiperOrigin-RevId: 809025295
diff --git a/java/core/src/main/java/com/google/protobuf/Descriptors.java b/java/core/src/main/java/com/google/protobuf/Descriptors.java
index bf9f16c..9138bc3 100644
--- a/java/core/src/main/java/com/google/protobuf/Descriptors.java
+++ b/java/core/src/main/java/com/google/protobuf/Descriptors.java
@@ -42,6 +42,7 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.ToIntFunction;
import java.util.logging.Logger;
/**
@@ -1328,13 +1329,7 @@
/** Describes a field of a message type. */
public static final class FieldDescriptor extends GenericDescriptor
implements Comparable<FieldDescriptor>, FieldSet.FieldDescriptorLite<FieldDescriptor> {
- private static final NumberGetter<FieldDescriptor> NUMBER_GETTER =
- new NumberGetter<FieldDescriptor>() {
- @Override
- public int getNumber(FieldDescriptor fieldDescriptor) {
- return fieldDescriptor.getNumber();
- }
- };
+ private static final ToIntFunction<FieldDescriptor> NUMBER_GETTER = FieldDescriptor::getNumber;
/**
* Get the index of this descriptor within its parent.
@@ -2581,13 +2576,7 @@
}
};
- static final NumberGetter<EnumValueDescriptor> NUMBER_GETTER =
- new NumberGetter<EnumValueDescriptor>() {
- @Override
- public int getNumber(EnumValueDescriptor enumValueDescriptor) {
- return enumValueDescriptor.getNumber();
- }
- };
+ static final ToIntFunction<EnumValueDescriptor> NUMBER_GETTER = EnumValueDescriptor::getNumber;
/**
* Get the index of this descriptor within its parent.
@@ -3621,14 +3610,14 @@
private FieldDescriptor[] fields;
}
- private static <T> T binarySearch(T[] array, int size, NumberGetter<T> getter, int number) {
+ private static <T> T binarySearch(T[] array, int size, ToIntFunction<T> getter, int number) {
int left = 0;
int right = size - 1;
while (left <= right) {
int mid = (left + right) / 2;
T midValue = array[mid];
- int midValueNumber = getter.getNumber(midValue);
+ int midValueNumber = getter.applyAsInt(midValue);
if (number < midValueNumber) {
right = mid - 1;
} else if (number > midValueNumber) {
@@ -3639,8 +3628,4 @@
}
return null;
}
-
- private interface NumberGetter<T> {
- int getNumber(T t);
- }
}