java generischer String to T-Parser

8

Gibt es einen einfachen Weg, um eine Methode mit folgender Signatur zu implementieren? Zumindest muss die Implementierung primitive Typen behandeln (z. B. Double und Integer). Nicht primitive Typen wären ein netter Bonus.

%Vor%

Die Implementierung wäre für Objekte, die eine FromString-Schnittstelle (oder ein Äquivalent) implementiert haben, trivial, aber ich habe keine solche Sache gefunden. Ich habe auch keine funktionale Implementierung gefunden, die Reflexion verwendet.

    
cqcallaw 30.03.2012, 21:45
quelle

3 Antworten

5

Das ist nur möglich, wenn Sie Class<T> als weiteres Argument angeben. Das T selbst enthält keine Informationen über den gewünschten Rückgabetyp.

%Vor%

Dann können Sie den Typ anhand von type ermitteln. Ein konkretes Beispiel finden Sie in diesem Blog-Artikel .

    
BalusC 30.03.2012, 21:55
quelle
1

Sie möchten ein Objekt, das einen bestimmten Typ auf eine bestimmte Art analysiert. Offensichtlich ist es nicht möglich zu bestimmen, wie ein beliebiger Typ nur vom Typ analysiert wird. Wahrscheinlich möchten Sie auch etwas Kontrolle darüber, wie das Parsing durchgeführt wird. Sind beispielsweise Kommas in Zahlen in Ordnung? Sollten Whitespace getrimmt werden?

%Vor%

Single Abstract Method-Typen sollten hoffentlich weniger ausführlich in Java SE 8 implementiert werden.

    
Tom Hawtin - tackline 31.03.2012 00:52
quelle
0

Vielleicht nicht die Frage beantworten, wie man die Lösung implementiert, aber es gibt eine Bibliothek, die genau das tut (d. h. hat fast eine identische API wie angefordert). Es heißt type-parser und könnte etwa so verwendet werden:

%Vor%     
etxalpo 04.05.2014 12:50
quelle

Tags und Links