[templates] problem ze stworzeniem instancji obiektu

0

Witam chciałem napisać uniwersalną funkcję która by zerowała wszystkie elementy w podanej tablicy poprzez jej statyczne wywołanie. Przez zerowanie rozumiem utworzenie obiektu bezparametrowym konstruktorem. Koniec gadania trochę kodu:

       public static <T> void zero_array(T[] array){
		for(int i = 0; i < array.length; ++i)
		{
			array[i] = new T();
			
		}
	}

Błąd jaki eclipsa mi wyrzuca:

Cannot instantiate the type T

czy można to wykonać w podobny sposób? czy zawsze tam gdzie chcę zerować muszę wrzucać albo konkretnie napisaną funkcję albo żywcem pętle?

0

To nie dziala poniewaz w runtime T jest jakims nieznanym typem, i kompilator nie wie czy ten typ ma taki konstruktor czy tez nie. Sprobuj cos w stylu:

array[i] = (T) array.getClass().getComponentType().newInstance();

i obsluzyc wyjatki (IllegalAccessException, InstantiationException...)

0

Jesteś boski :D O to mi chodziło.
Wielki ukłon :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1