2010-02-16 16 views
6

In .NET, quando avevo un "valore" che poteva esistere come più tipi, potevo facilmente usare un TypeConverter per passare da un tipo all'altro (tipi di valuta, rappresentazione dati xml vs oggetto, ect) . In Java, non sono sicuro di quale sia il modo migliore per gestire questa situazione. Esiste un equivalente TypeConverter in Java?Esiste .Net TypeConverter equivalente in Java

risposta

2

Per qualcuno da un mondo .NET sarà una sorpresa che non ce ne sia uno pronto per l'uso. Questo perché abbiamo cose come primitive (int, long) ecc., I loro wrapper primitivi (Integer, Long etc), autoboxing da int a Integer quando richiesto (questo è da JDK 1.5).

Quindi noi poveri sviluppatori Java convertiamo manualmente le cose (alcuni esempi dati sopra da @Boolean) Anche i fastidi infiniti di usare gli operatori == quando li fanno. Ad esempio: gli interi Autoboxed di fino a 127 vengono memorizzati nella cache.

public void testsimple() { 
    Integer a = 124, b = 124, c = 500, d= 500; 
    System.out.println(a == b); //prints true in JDK 1.6 
    System.out.println(c == d); //prints false in JDK 1.6 
} 

Se stai scrivendo un'app enorme che ha bisogno di troppa conversione dei dati, puoi scrivere qualcosa da te. L'interfaccia "TypeConverter" di Spring può essere un buon inizio.

Utilizza questo link http://imagejdocu.tudor.lu/doku.php?id=howto:java:how_to_convert_data_type_x_into_type_y_in_java se avete qualche problema

0

ben si può typecast cose ... per esempio se si dispone di un oggetto List che conteneva le stringhe .. si dovrebbe prendere una stringa dalla lista in questo modo:

List aList = new List(); 
aList.add("Hello World); 
String s = (String) aList.get(0); 

Se si sta tentando di convertire un stringa in un numero .. si potrebbe fare qualcosa di simile a questo:

String aString = "200"; 
int i = Integer.Parse(aString); 

I cheat durante la conversione di un intero in una stringa in questo modo:

int i = 200; 
String s = "" + i; 
0

TypeConverter dove aggiunto NET in parte per consentire ai progettisti di interfaccia utente interattiva per mostrare valori come stringa e lasciare che i valori di correttezza Modifica utente di tipi del designer dell'interfaccia utente non capisce.

Penso che TypeConverter venga utilizzato anche dall'associazione dati.

Il fatto che puoi utilizzare TypeConverter nel tuo software per convertire tra i tipi che conosci al momento della compilazione è un effetto collaterale e non il caso d'uso principale per cui sono stati creati.

Poiché Java non ha mai provato a supportare gli strumenti "RAD", non ha avuto la stessa necessità per TypeConverter e PropertyDescriptors ecc. In un certo senso .net è stato progettato per consentire lo stesso tipo di sviluppo dell'interfaccia utente abilitato per VB6.