Unchecked-Warnungen für Arraylist

Warum bin ich immer diese 4 Warnungen aus -Xlint und was sollte ich tun Sie? Ich bin gerade erst in Java, also bin wahrscheinlich etwas fehlt offensichtlich.

import java.util.*;

class CompareGerbils implements Comparator {
    public int compare(Object o1, Object o2) {
       return ((Gerbil)o2).number() - ((Gerbil)o1).number();
    }
}

class Gerbil {
int gerbilNumber;

Gerbil(int gN) {
    gerbilNumber = gN;
    }

int number() {
    return gerbilNumber;
    }
}

public class lt {
    public static void main(String[] args) { 

    //I'd like to be able to add both ints and strings to list
    ArrayList list = new ArrayList();

    //unchecked call warning:
    list.add(1);  

    //unchecked call warning:
    list.add("b");  

    ArrayList<Gerbil> gerbillist = new ArrayList<Gerbil>();

    for(int i = 0; i < 5; i++) {
        gerbillist.add(new Gerbil(i));
    }

    //unchecked conversion warning
    //unchecked method invocation
    Collections.sort(gerbillist, new CompareGerbils());
  }
}

EDIT: Antworten bisher beantwortet haben, Arraylist-Deklaration. Wie über die Art der Warnungen an der Unterseite des Codes? Dank

  • Jemand anderes antwortete, während ich getippt, aber ich würde gerne eine Stil-note. Ihre Komparator impl benannt ist falsch und sollte mit einem Großbuchstaben beginnen. Nicht in dem Sinne zu sein, pedantisch, aber du wirst verrückt irgendwann die Aufrechterhaltung dieser code Fragen, warum das argument Typ für eine variable, Erklärung scheint zu sein, eine variable.
  • Bitte seien Sie pedantisch. Wie ich schon erwähnt habe, ich bin nur zu lernen. Ich werde die änderung vornehmen.
  • // I'd like to be able to add both ints and strings to list - Das ist in der Regel ein Designfehler. Warum sind Sie versuchen, erstellen Sie eine Sammlung mit grundlegend verschiedenen Arten der Dinge?
  • die Art Warnung, weil Sie definiert haben, der Komparator keine Daten geben, d.h. new Comparator() statt new Comparator<Gerbil>(). Ich habe aktualisiert, meine Antwort entsprechend den richtigen Gebrauch.
  • Peters: ich bin nur zu lernen, im moment. Alle Beispiele, die ich gesehen habe Stimmen, um eine einzige Art, so dass ich wollte sehen, ob die Sprache hatte diese Flexibilität.
InformationsquelleAutor foosion | 2011-02-28
Schreibe einen Kommentar