Warningi w Javie

1

Mam problem z pozbyciem się paru warningów w Javie.

 public List<Punkt>[] LS;
LS = new LinkedList [liczbaW];

Warning: Type safety: The expression of type LinkedList[] needs unchecked conversion to conform to List<Punkt>.
Próbowałem przerobić drugą linijkę na: LS = new LinkedList<Punkt> [liczbaW]; ale wtedy to już zupełnie nie działa :/

Warning: The serializable class does not declare a static final serialversionuid field of type long.
Wiem, ze mozna to rozwiązać dodając pole static final long. Ale warto dodawać je tylko po to by sie pozbyć warninga? Czy lepiej olać?
BO mam takiego prowadzącego na studiach, ze się strasznie czepia warningów :P Więc nie wiem co z tym zrobić..

0
Poszukiwacz napisał(a)

Warning: Type safety: The expression of type LinkedList[] needs unchecked conversion to conform to List<Punkt>.

Na początku linijki z warningiem dodaj @SuppressWarnings("unchecked")

Poszukiwacz napisał(a)

Warning: The serializable class does not declare a static final serialversionuid field of type long.

W opcjach kompilatora ustaw -Xlint:all,-serial

0

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5105887

Nie można zrobić generycznych tablic (!!!). Zamiast robić tablicę list lepiej zrób tablicę tablic albo (lepiej) listę list. Pozbędziesz się problemów z wymazywaniem typów.

Jeśli musisz mieć tablicę list to zamiast new LinkedList[liczbaW] zrób new List[liczbaW]. Ładniej wygląda.

Warning: The serializable class does not declare a static final serialversionuid field of type long.
Wiem, ze mozna to rozwiązać dodając pole static final long. Ale warto dodawać je tylko po to by sie pozbyć warninga? Czy lepiej olać?
BO mam takiego prowadzącego na studiach, ze się strasznie czepia warningów :P Więc nie wiem co z tym zrobić..

Skoro implementujesz Serializable to dodaj seriala. Jeśli prowadzący się czepia to po dodanie flagi kompilatora omijającej warning będzie się jeszcze bardziej czepiał.

0

Racja, nie zauważyłem że to miało być miksowanie tablic z listami. Rzeczywiście lepiej zrób to samymi listami.

A co do implementowania serializable, po co na siłę dodawać tego longa, jeżeli się z tego nie korzysta?

0

Jestem prawie pewien, że jeśli nie poda się serialVersionUID explicite to jest on liczony w locie przy serializacji/ deserializacji albo ładowaniu klasy.

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