Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

v.krastev avatar v.krastev 54 Точки

Generic методи в Java

Здравейте!

import java.util.Arrays;
import java.util.Scanner;

public class MergeSort {
    public static void main(String args[]){
        Scanner scanner = new Scanner(System.in);

        int[] arr = Arrays.stream(scanner.nextLine().split(" +")).mapToInt(Integer::parseInt).toArray();

        Gen(arr);
    }

    static <T> void Gen(T[] arr) {
        for (T item : arr) {
            System.out.println(item);
        }
    }
}

Защо подчертава arr в Gen(arr)? Грешката е: no instance(s) of type variable(s) T exist so that int[] conforms to T[]. четох в нета, но не разбрах къде бъркам.

Благодаря!

Тагове:
0
Fundamentals Module
Nikola_Andreev avatar Nikola_Andreev 671 Точки
Best Answer

Привет.

Дава ти грешка понеже когато работиш с generic не може да използваш примитивен тип данни. Тоест трябва да използваш Integer вместо int. Замени си четенето на масива с този ред и ще проработи:


Integer[] test = Arrays.stream(Arrays.stream(scan.readLine().split(" "))
				.mapToInt(Integer::parseInt).toArray()).boxed().toArray(Integer[]::new);

Поздрави.

0
v.krastev avatar v.krastev 54 Точки

Благодаря ти!

Меко казано не съм фен на чичо Бил, но трябва да призная, че, поне за новаци като мен, C# е в пъти с по-лесен синтаксис, по-интуитивен и логичен, ако щеш. Порсто още ще позадълбая в Java-та пък ще видим :D.

Благодаря отново!

Поздрави!

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.