Warum return type Object ?

Status
Nicht offen für weitere Antworten.
B

bananenkasper

Gast
Hallo,

ich wundere mich, warum die Methode "getParam(I_Params.Type)" ein Objekt vom Typ "Object" returned.
Eigentlich hätte ich gern ein File-Object...

Code:
public static void main(String[] args) {
		
		I_Param<File> fileParam = new FileParam();
		I_Params params = new Params();
		params.addParam(I_Params.Type.FILE, fileParam);
		
		File file = params.getParam(I_Params.Type.FILE).getValue();    // Hier hängt es...
	}
Code:
public interface I_Param<T> {	
	T getValue();	
	void setValue(T value);
}
public interface I_Params {
	enum Type {
		FILE
	}
	<T> void addParam(I_Params.Type type, I_Param<T> param);
	<T> I_Param<T> getParam(I_Params.Type type);
}
 

thE_29

Top Contributor
Was ist wenn du castest?

Weil du gibst bei I_Params keinen generic Typen an! Von daher nimmt er als Default Object
 
B

bananenkasper

Gast
Casten wollte ich eigentlich nicht...
Finde ich zu unsauber ;)

Wie kann ich den fehlenden generic typ angeben?
 
S

SlaterB

Gast
Sinn scheint das nicht zu machen, denn wenn man das ganz in zwei Schritten abarbeitet, funktioniert es..

Code:
public class Test
{
    public static void main(String[] args)
    {

        I_Param<File> fileParam = null;
        I_Params params = null;

        I_Param<File> x = params.getParam();
        File file = x.getValue(); // Hier hängt es nicht
        File file2 = params.getParam().getValue(); // Hier hängt es...


        String a = getList().get(4).get(4);
    }

    public static List<List<String>> getList()
    {
        return null;
    }

}


interface I_Param<T>
{
    T getValue();

}


interface I_Params
{

    <T>I_Param<T> getParam();
}

edit: ok, jetzt habe ich so viel gekürzt, das bei file2 gar nirgendwo mehr 'File' auftaucht, dann wirds langsam deutlich ;)

das T müsste in getParam() als Parameter auftauchen, dann wäre es definiert,
gleich kommt noch ein edit

edit 2:

Code:
public class Test
{
    public static void main(String[] args)
    {
        I_Params params = null;

        File temp = null;
        File file2 = params.getParam(temp).getValue(); // Hier hängt es nun nicht mehr

    }
}


interface I_Param<T>
{
    T getValue();
}


interface I_Params
{

    <T>I_Param<T> getParam(T t);
}
 
B

bananenkasper

Gast
Tatsache... :shock:

Wenn man es trennt geht es...

SlaterB hat gesagt.:
Code:
File temp = null;
        File file2 = params.getParam(temp).getValue(); // Hier hängt es nun nicht mehr

geht das noch irgendwie eleganter?
Naja, vielleicht ist mein Ansatz auch einfach "sub-optimal"...
Ich versuche Programm-Parameter zu verwalten, die logischerweise verschiedene Datentypen repräsentieren können (File, int, double...).
Wenn ich obiges Interface folgendermassen implementiere, komme ich um das Casten eh nicht drum rum...
Code:
public class Params implements I_Params{
	private final Map<I_Params.Type, I_Param<?>> map = new HashMap<I_Params.Type, I_Param<?>>();
	public <T> void addParam(Type type, I_Param<T> param) {
		map.put(type, param);
	}
	public <T> I_Param<T> getParam(Type type) {
		return map.get(type);        // Fehler
	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Wildcard aus Parameter in return type Allgemeine Java-Themen 2
rosima26 Unterschiedliche Werte bei return/print Allgemeine Java-Themen 12
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
I Java Optionals mit return-Block Allgemeine Java-Themen 2
R missing return statement Allgemeine Java-Themen 13
V int Array einer return Methode übergeben? Allgemeine Java-Themen 4
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
B XAResource[] return statement Allgemeine Java-Themen 3
P Return oder Global Allgemeine Java-Themen 3
W Rekursion-Probleme mit return Allgemeine Java-Themen 35
Dragonfire Code Konvention for-Schleife / return Allgemeine Java-Themen 15
B boolean return typ verwenden? Allgemeine Java-Themen 5
R return in try-catch-Blöcken Allgemeine Java-Themen 6
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
H return bei Methode Allgemeine Java-Themen 2
chik 2 return werte für Greedy-Algorithmus (gelöst) Allgemeine Java-Themen 3
hdi dynamische return-Werte Allgemeine Java-Themen 15
M Problem mit return-werten Allgemeine Java-Themen 35
D public boolean return Allgemeine Java-Themen 8
M return-Statement Allgemeine Java-Themen 5
S Wie Carriage Return Line Feed abfragen. Allgemeine Java-Themen 6
M java-doc: @return mehrzeilig gestalten Allgemeine Java-Themen 3
L return-Funktion Allgemeine Java-Themen 5
L return Funktion Allgemeine Java-Themen 6
G return bei generiertem code Allgemeine Java-Themen 6
S Fehler beim return eines String Arrays Allgemeine Java-Themen 3
Fredy Return by value mit String?? Allgemeine Java-Themen 6
M java: unexpected type Allgemeine Java-Themen 2
BinFox Type-Parameterverwirrung Allgemeine Java-Themen 7
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
K Wildcard und class type Allgemeine Java-Themen 9
bueseb84 required a bean of type that could not be found. Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
E javax.mail sene Type ändern Allgemeine Java-Themen 2
T JNA: Invalid sizeof type 4 Allgemeine Java-Themen 0
P List<Type> Konvertieren in List<List<Type>> Allgemeine Java-Themen 3
Tarrew Generics - Type erasure Allgemeine Java-Themen 5
S Welcher Schleifen type für eine Berechnung Allgemeine Java-Themen 7
D Type herausfinden Allgemeine Java-Themen 15
S Type mismatch: cannot convert from Object to float Allgemeine Java-Themen 3
P Default constructor cannot handle exception type Allgemeine Java-Themen 6
C Kompletter Pfad aus "input type=file" auslesen Allgemeine Java-Themen 3
I Library für High Performance Mime Type Erkennung Allgemeine Java-Themen 8
P Mime Type aus Stream lesen Allgemeine Java-Themen 5
J BufferedImage aus PNG Files haben keinen Type Allgemeine Java-Themen 4
G POI: Leere Zelle nimmt keinen Type an Allgemeine Java-Themen 8
S Type safety Warnings beim casten von Generics Allgemeine Java-Themen 6
M Type-Cast Allgemeine Java-Themen 3
G Generics in Map. Type of value abhängig vom key Allgemeine Java-Themen 3
S Innerer Type einer generischen Collection herausfinden? Allgemeine Java-Themen 13
S Collection Type Allgemeine Java-Themen 8
zilti NetBeans 6.0: neuen File Type definieren Allgemeine Java-Themen 2
S anderer Mime Type bei xml-Datei Allgemeine Java-Themen 2
G Error: Hashtable Type safety: The method put(Object, Object) Allgemeine Java-Themen 6
A serial Version UID field of type long Allgemeine Java-Themen 5
G Enclosing Type Allgemeine Java-Themen 3
G [quote]the type HashMap is not generic; it cannot be paramet Allgemeine Java-Themen 4
C Generic Type ermitteln Allgemeine Java-Themen 3
padde479 The static method sleep(long) from the type Thread should. Allgemeine Java-Themen 2
H References to generic type Test.A<typ> should be param Allgemeine Java-Themen 5
byte Generic Type einer List zur Laufzeit rausfinden? Allgemeine Java-Themen 4
T Generics, Enumerations und Type-Casts Allgemeine Java-Themen 13
K The method clone() from the type Object is not visible. Allgemeine Java-Themen 9
C REG_BINARY Type in Windows Registry ausgeben ? Allgemeine Java-Themen 4
M Content-Type setzen und auslesen? Allgemeine Java-Themen 2
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
Zeppi Cast Object in Generics Allgemeine Java-Themen 4
MoxxiManagarm Mapping into existing object Allgemeine Java-Themen 15
coolian Swing erstellt fillreckt immmer ein neues object Allgemeine Java-Themen 13
N Wo ist Object.class ? Allgemeine Java-Themen 0
R Erste Schritte Object reference funktioniert nicht. Wie mach ichs richtig? Allgemeine Java-Themen 3
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
N Gibt es etwas allgemeineres as Object? Allgemeine Java-Themen 16
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
Z Vergleich zwischen int und Object Allgemeine Java-Themen 1
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
T InvalidClassException - Read null attempting to read class descriptor for object Allgemeine Java-Themen 8
J Ist eine Instanz von einem bestimmten Object Typ? Allgemeine Java-Themen 6
L Sortieren von "Map<String, Object>" Allgemeine Java-Themen 2
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
G REST- Object darstellung Allgemeine Java-Themen 6
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
darekkay Generics: Wildcard und Object Allgemeine Java-Themen 5
O Socket Object wird scheinbar falsch empfangen Allgemeine Java-Themen 6
N Klasse/Object Eigenaufruf Allgemeine Java-Themen 5
G JNI Shared Object Allgemeine Java-Themen 10
B Variable class in java.lang.Object Allgemeine Java-Themen 11
S Klassen Zuorgnung Object-char Allgemeine Java-Themen 2
N java.lang.IllegalMonitorStateException: object not locked by thread before notify() Allgemeine Java-Themen 2
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
M Jaxb und JPA: A cycle is detected in the object graph Allgemeine Java-Themen 5
H double dispatch und equals(Object) Allgemeine Java-Themen 6
J Datentypen Problem mit Date-Object Allgemeine Java-Themen 2
B Variablen Alle RenderingHints.Keys (KEY_*) in Array + alle RenderingHints.Keys (VALUE_*) in Object[] Allgemeine Java-Themen 8
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
L Object Instanz anhand eines Strings Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben