# Fehlermeldung: uses unchecked or unsafe operations ?



## Serenity (23. Feb 2005)

Warum lässt sich das nicht compilieren?  Habs mehrmals probiert, class Name verändert etc... immer die gleiche Fehlermeldung. 
Andere Codes lassen sich aber problemlos compilieren.   


Fehlermeldung: 


> C:\Programme\Java\jdk1.5.0\bin>javac lern.java
> Note: lern.java uses unchecked or unsafe operations.
> Note: Recompile with -Xlint:unchecked for details.



Code ist aus dem javabuch.de: 

```
import java.util.*;
public class lern {
    static void fillList(List list)
   {
     for (int i = 0; i < 10; ++i) {
       list.add("" + i);
     }
     list.remove(3);
     list.remove("5");
   }
 
   static void printList(List list)
   {
     for (int i = 0; i < list.size(); ++i) {
       System.out.println((String)list.get(i));
     }
     System.out.println("---");
   }
 
   public static void main(String[] args)
  {
     //Erzeugen der LinkedList
     LinkedList list1 = new LinkedList();
     fillList(list1);
     printList(list1);
     //Erzeugen der ArrayList
     ArrayList list2 = new ArrayList();
     fillList(list2);
     printList(list2);
    //Test von removeAll
    list2.remove("0");
     list1.removeAll(list2);
    printList(list1);

    }
}
```

Vielen Dank im Vorraus!!


----------



## Beni (23. Feb 2005)

Das sind keine Fehler, das sind Warnungen.

Diese Warnungen entstehen, weil du Java 1.5 einsetzt. Java 1.5 hat einen erweiterten Syntax, gegenüber dem alten Java 1.4 (auf das sich dein Buch wohl bezieht).

Zurzeit kannst du diese Warnungen ignorieren, aber wenn du die sie raushaben willst, musst du Generics einsetzen (das würde dann so aussehen

```
public class lern {
    static void fillList(List<String> list)
   {
     for (int i = 0; i < 10; ++i) {
       list.add("" + i);
     }
     list.remove(3);
     list.remove("5");
   }

   static void printList(List<?> list)
   {
     for (int i = 0; i < list.size(); ++i) {
       System.out.println( list.get(i));
     }
     System.out.println("---");
   }

   public static void main(String[] args)
  {
     //Erzeugen der LinkedList
     LinkedList<String> list1 = new LinkedList<String>();
     fillList(list1);
     printList(list1);
     //Erzeugen der ArrayList
     ArrayList<String> list2 = new ArrayList<String>();
     fillList(list2);
     printList(list2);
    //Test von removeAll
    list2.remove("0");
     list1.removeAll(list2);
    printList(list1);

    }
}
```


----------



## Illuvatar (23. Feb 2005)

Schau mal hier gibts auch ne neue Javabuch-Version, die sich auf 1.5 bezieht:
http://www.java-forum.org/de/javabuch


----------



## Serenity (23. Feb 2005)

Dankeschön!!!

Ich hab ne kleine Frage: <?> steht für irgendein Typ oder?

@Illuvater: 
Da sind trotzdem keine Generics dabei, aber trotzdem Danke!!  Ich hab noch ein Büchlein mit Java 5.


----------



## Beni (23. Feb 2005)

Serenity hat gesagt.:
			
		

> Ich hab ne kleine Frage: <?> steht für irgendein Typ oder?


Ja (das ist noch weniger bindend als z.B. Object).


----------



## Illuvatar (23. Feb 2005)

Öhm... und was ist das dann http://www.java-forum.org/de/javabuch/html/k100105.html#typisierteklassen ?


----------



## Serenity (23. Feb 2005)

Illuvatar hat gesagt.:
			
		

> Öhm... und was ist das dann http://www.java-forum.org/de/javabuch/html/k100105.html#typisierteklassen ?



ups ok^^" aber bei dem Bsp von vorhin nicht^^" darum^^"


----------

