Несовместимые типы с Java Generics при попытке использовать BiFunction для обработки различных примитивовJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Несовместимые типы с Java Generics при попытке использовать BiFunction для обработки различных примитивов

Сообщение Anonymous »

Что я пытаюсь сделать
У меня есть несколько методов, которые очень похожи. Все они принимают какой-то тип примитива из массива внешней общей библиотеки C++ и сохраняют его в массиве Java одинакового размера. Это работает. Но у меня их тонна, и все они выглядят очень копипастно и занимают целые страницы, так что это сводит меня с ума, поэтому я хотел немного пофантазировать с дженериками, лямбда-выражениями и т. д., чтобы сделать это проще и аккуратнее. . Но я получаю ошибку времени компиляции о несовместимых верхних границах.
Работающие методы
public static boolean[] getFromCppArrayBool(SWIGTYPE_p_bool arrayIn, размер int) { boolean[] retval = новый логический[размер]; for(int я = 0; я getSomeBool(array, i)); ^ где T,A,S — переменные типа: T расширяет объект, объявленный в методе getFromCppArrayGeneric(A,S,BiFunction) Объект расширяется, объявленный в методе getFromCppArrayGeneric(A,S,BiFunction) S расширяет целое число, объявленное в методе getFromCppArrayGeneric(A,S,BiFunction) ./SwigArrayHelper.java:95: ошибка: несовместимые типы: переменная вывода T имеет несовместимые верхние границы int,Object return getFromCppArrayGeneric(arrayIn, size, (array, i)->arraystuff.int_array_getitem(array, i)); ^ где T,A,S — переменные типа: T расширяет объект, объявленный в методе getFromCppArrayGeneric(A,S,BiFunction) Объект расширяется, объявленный в методе getFromCppArrayGeneric(A,S,BiFunction) S расширяет целое число, объявленное в методе getFromCppArrayGeneric(A,S,BiFunction) В чем, по моему мнению, проблема Я предполагаю, что, хотя я получил свой тип T в результате извлечения первого значения в массиве, ему все равно не нравится, что это примитив, и вы не можете передавать примитивы как обобщения. Но я могу ошибаться.
Какой у меня вопрос
И поэтому? Если да, то есть ли другой способ сделать это без этой проблемы?

Этот вопрос был закрыт, указав на несовместимые типы с Java Generics при попытке использовать BiFunction для обработки различных примитивов, но это не отвечает на вопрос «хорошо, так как бы мне это сделать». Как мне сделать универсальный примитивный экстрактор? Потому что 1 страницу методов с одной строкой, где в другой метод передаются только типы, НАМНОГО легче читать, чем 5 страниц, которые все выглядят одинаково, но таковыми не являются.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»