Linked List generisch

elisio

Mitglied
Hallo,

ich habe folgende LinkedList geschrieben, habe aber das Problem, dass der Compiler anzeigt:

"java uses unchecked or unsafe operations".

Java:
import java.util.*; 
class Netzwerk {
private String netzwerkName;
private int anzahlBenutzer;
protected LinkedList benutzerName;
public Netzwerk(String netzwerkName, int anzahlBenutzer) {
benutzerName = new LinkedList<String>();
this.netzwerkName = netzwerkName;
this.anzahlBenutzer = anzahlBenutzer;

}
public String getNetzwerkName() {
return netzwerkName;
}
public int getAnzahlBenutzer() {
return anzahlBenutzer;
}
public void benutzerAnmelden(LinkedList benutzerName) {
if (benutzerName.size() < anzahlBenutzer) {
benutzerName.addLast("R. Schmidt");
}
}
public void benutzerAbmelden(LinkedList benutzerName) {
	benutzerName.removeLast();
}
}

Hat jemand eine Idee wie ich das abstellen könnte? Für Hinweise wäre ich sehr dankbar😉
 
Zuletzt bearbeitet von einem Moderator:
das hatte ich schon probiert, funktioniert aber leider nicht. Der Quellcode sieht nun folgendermaßen aus (es wird weiterhin kein Fehler angezeigt, nur die oben genannte Meldung)

Java:
import java.util.*; 
class Netzwerk {
private String netzwerkName;
private int anzahlBenutzer;
protected LinkedList<String> benutzerName;
public Netzwerk(String netzwerkName, int anzahlBenutzer) {
benutzerName = new LinkedList<String>();
this.netzwerkName = netzwerkName;
this.anzahlBenutzer = anzahlBenutzer;

}
public String getNetzwerkName() {
return netzwerkName;
}
public int getAnzahlBenutzer() {
return anzahlBenutzer;
}
public void benutzerAnmelden(LinkedList benutzerName) {
if (benutzerName.size() < anzahlBenutzer) {
benutzerName.addLast("R. Schmidt");
}
}
public void benutzerAbmelden(LinkedList benutzerName) {
	benutzerName.removeLast();
}
}
 
ist der Fehler keiner bestimmten Zeile zugeordnet? wenn doch, warum nennst du diese nicht?
es gibt mehrere Vorkommen von LinkedList (als Methodenparameter allerdings auch ziemlich überflüssig bis gefährlich komisch!),
die müssen alle geändert werden
 
Klassen wie LinkedList, Vector etc sollten NIE ohne Parametrisierung eingesetzt werden - (Es mag Ausnahmen geben, aber es sollen Ausnahmen bleiben)

Vorsicht: ich halte das unten NICHT für eine gute Lösung, ich habe nur gezeigt, wie du die Warnungen los wirst.

benutzerAnmelden und benutzerAbmelden brauchen IMHO keine LinkedList sondern einen String als Parameter.

Java:
import java.util.*;

class Netzwerk {
	private String netzwerkName;
	private int anzahlBenutzer;
	protected LinkedList<String> benutzerName;

	public Netzwerk(String netzwerkName, int anzahlBenutzer) {
		benutzerName = new LinkedList<String>();
		this.netzwerkName = netzwerkName;
		this.anzahlBenutzer = anzahlBenutzer;
	}
	public String getNetzwerkName() {
		return netzwerkName;
	}
	public int getAnzahlBenutzer() {
		return anzahlBenutzer;
	}
	public void benutzerAnmelden(LinkedList<String> benutzerName) {
		if (benutzerName.size() < anzahlBenutzer) {
			benutzerName.addLast("R. Schmidt");
		}
	}
	public void benutzerAbmelden(LinkedList<String> benutzerName) {
		benutzerName.removeLast();
	}
}

Es gibt eben doch Gründe die für eine IDE anstelle des Kommandozeilenkompilers sprechen ;-)
 

Zurück
Oben