Wie kann ich einen String-Wert generisch in eine Instanz eines bestimmten Comparable-Typs in Java konvertieren?Java

Java-Forum
Anonymous
 Wie kann ich einen String-Wert generisch in eine Instanz eines bestimmten Comparable-Typs in Java konvertieren?

Post by Anonymous »

Ich versuche, eine generische Dienstprogrammmethode zu implementieren, die einen String-Wert und einen Class-Typ annimmt und eine Instanz dieses Typs zurückgibt.
Der Kontext: Dieser Wert stellt Daten aus einer JPA-Spalte dar, sodass der Typ dem Typ der Entitätseigenschaft entspricht (z. B. String, Integer, LocalDate, Instant usw.).
Die Implementierung aller Zieltypen ist garantiert Vergleichbar.
Hier ist ein vereinfachtes Beispiel dessen, was ich derzeit habe:

Code: Select all

public class TypeParser {

public static Object convertStringToTypeOf(String raw, Class type){
return Integer.valueOf(raw);
}
}
Was ich möchte, ist ein richtiger, typsicherer und erweiterbarer Ansatz, etwas, das typische vergleichbare-Typen verarbeiten kann, ohne eine lange Kette von if/else-Anweisungen wie dieser fest zu codieren:

Code: Select all

if (type == String.class) return raw;
if (type == Integer.class) return Integer.valueOf(raw);
if (type == LocalDate.class) return LocalDate.parse(raw);
if (type == Instant.class) return Instant.parse(raw);
Ich möchte dies so generisch, wartbar und typsicher wie möglich gestalten, da es Teil eines Dienstprogramms auf Framework-Ebene zum dynamischen Zuordnen von Werten in JPA-Entitäten sein wird.
Die Hauptidee ist: Wenn dieser Typ von „Comparable“ abgeleitet ist, was garantiert ist, wird er instanziiert, da er später verglichen wird.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post