Я получаю ошибку компилятора, например:
Метод accept (Integer, Integer) в типе BiConsumer не применим для аргументов (Object, Object). Как я могу привести два целочисленных ввода, чтобы компилятор принял их как <Integer, Integer>
?
Я получаю ошибку в следующем коде:
import java.util.function.BiConsumer;
public class ExceptionHandlingExample {
public static void main(String[] args) {
int[] numberArray = { 1, 2, 3, 4 };
int key = 2;
calc(numberArray, key, wrapperForLambda( (a, b) -> System.out.println(a / b) ));
// Type Safety: The expression of Type BiConsumer needs unchecked conversion to conform to unchecked BiConsumer<Integer, Integer>
}
private static void calc(int[] numberArray, int key, BiConsumer<Integer, Integer> consumer) {
for (int i : numberArray) {
consumer.accept(i, key);
}
}
private static BiConsumer wrapperForLambda(BiConsumer<Integer, Integer> consumer) {
// BiConsumer is a raw type. References to generic type BiConsumer<T, U> should be parameterized
return (a, b) -> consumer.accept(a, b) ;
// [Compilier-error] The method accept (Integer, Integer) in the type BiConsumer<Integer, Integer> is not applicable for the arguments (Object, Object)
}
}
Я хочу избавиться от ошибки компилятора:
Метод accept (Integer, Integer) в типе BiConsumer не применим для аргументов (Object, Object)
Заранее благодарю за помощь!