Datentypen <T>

Bitte aktiviere JavaScript!
Also jungs
Ich habe ne Klasse, die sieht wie folgt aus:
Code:
public class Klasse_<T> {
public T value;
public Klasse_(String cfgKey, T value) {
            if (value instanceof Integer) {
                value = (T) ConfigUtils.getInt(cfgKey);
}
}
}
Problem ist folgendes: Cannot cast from int to T

Ich würde gerne, dass value den Wert aus der Config annimmt, allerdings tritt dabei dieser Fehler auf.
Habe schon im Internetz gesucht, aber bin nicht fündig geworden.

Kann mir wer helfen/Tipps geben?
 
A

Anzeige




Vielleicht hilft dir unser Java-Tutorial hier weiter —> (hier klicken)
T bedeutet, dass eine Instanz von Klasse_ (kann auch eine erbende Klasse sein) einem bestimmten Typ hat.

Was willst Du eigentlich machen?

Wenn es eine Oberklasse für Konfigurationswerte sein soll, dann vererbe:

Java:
public class IntegerKlasse extends Klasse_<Integer> {
}
In dieser Klasse kannst Du Deinen Konstruktor auf int (wird geboxt zu Integer) schreiben.
 
Ich möchte in dieser Klasse jeden Datentypen nutzen können, auch boolean oder Float.
Muss ich also für jeden Datentyp eine eigene Klasse erstellen oder geht das alles in einer Klasse?
 
Es gibt in Java 2 Arten von Datentypen:
  • Primitive Datentypen (int, char, usw.)
  • Objekte
int ist kein Objekt und kann somit auch nicht auf ein Objekt gecastet werden!
Dafür besitzt Java aber ebenfalls eine Lösung, nämlich indem man Integer statt int verwendet, dann wird es als Objekt behandelt.
 
In deinem obigen Code löst du das btw, wenn du auf Integer statt auf T castest.
 
A

Anzeige




Du möchtest Python lernen? Dann sichere dir hier alle wichtigen Grundlagen.
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben