Datentypen <T>

EinsteigerxD

Mitglied
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?
 

Barista

Top Contributor
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.
 

EinsteigerxD

Mitglied
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?
 

JuKu

Top Contributor
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.
 

Neue Themen


Oben