2013-06-06 11 views
6

Mam klasy Koszyk:Typ surowy. Odniesienia do typów generycznych powinny być programowane

public class Cage<T extends Animal> { 
// the construtor takes in an integer as an explicit parameter 
... 
} 

Próbuję instancję obiektu klatki w innej klasy głównej metody:

private Cage cage5 = new Cage(5); 

pojawia się błąd: Cage jest typu surowego. Odniesienia do typu ogólnego Klatka powinna być sparametryzowana. Próbowałem kilka pomysłów, ale jestem zakleszczony o tej skomplikowanej składni: o (

+0

możliwy duplikat [Klasa to surowy typ. Odniesienia do typu ogólnego Klasa powinna być sparametryzowana] (http://stackoverflow.com/questions/1372595/class-is-a-rawi--przy-powiedzi-do-pomocy-podstawowej-podane-zastosowanie-zastosowania) – wchargin

+3

Nie edytuj pytania, aby unieważnić odpowiedzi. Jeśli masz nowy problem, otwórz nowe pytanie. Ponieważ usunąłeś oryginalne pytanie i zastąpiłeś je nowym, moja odpowiedź nie ma już sensu. Zwróciłem pytanie. – cdhowie

+0

Przepraszam, otworzę nowe pytanie. – LanneR

Odpowiedz

14

Cage<T> to typ rodzajowy, więc trzeba określić parametr typu, jak tak (zakładając, że istnieje class Dog extends Animal):

private Cage<Dog> cage5 = new Cage<Dog>(5); 

można użyć dowolnego typu, który rozciąga Animal (lub nawet Animal sam).

Jeżeli pominięto parametr typu, to co można skończyć ze w tym przypadku jest zasadniczo Cage<Animal>. jednak nadal powinien zawierać wyraźne określenie parametru typu nawet jeśli tego chcesz.

+0

Dzięki cdhowie. Przykro mi, miałem kilka różnych rzeczy, które próbowałem. Mam teraz bardziej uparty błąd edytowany teraz. Dzięki za wkład! – LanneR

Powiązane problemy