In C# Mi è piaciuto usare la classe Convert. Ha reso la conversione da un tipo all'altro facile e coerente. Stavo pensando di scrivere una classe simile in Java, ma non voglio reinventare la ruota. Così ho cercato su Google per vedere se una cosa del genere esiste e non stava ottenendo buoni risultati. Quindi qualcuno è a conoscenza di qualcosa di simile nelle librerie standard, google guava o apache commons?In Java esiste un equivalente della classe Convert da C#?
risposta
Non esiste una classe come questa in java.
La pratica accettata in Java è di lanciare i primitivi l'uno con l'altro. Questo è un modo semplice e coerente per convertire da un tipo all'altro.
float bar = 4.0f;
int foo = (int) bar;
E per convertire le primitive in stringhe, è 'Integer.parseInt',' Float.parseFloat', e così via. – Vulcan
Sì. Sono a conoscenza di questi metodi. C# li ha. La classe di conversione C# è una classe di convenienza. È completamente inutile, ma rende il codice più pulito e più veloce da digitare. –
Le persone che sono abituate a un particolare paradigma mancheranno sempre quelle convenzioni quando migreranno verso qualcos'altro. In realtà, una classe di convenienza per il casting tra i tipi di valore di base in Java non è necessaria (e probabilmente offuscante). Quando sono passato da Visual Basic 6, mi mancava la funzione Choose (i, args ...), quindi ne scrivo ancora una in questo giorno (è una sola) ma non è davvero necessaria (e poiché tutti gli argomenti devono essere valutato c'è un compromesso di prestazioni). – scottb
È possibile creare la propria classe di convertire facilmente
package com.abc;
public class Convert {
public static int ToInt(Object obj) {
try{
return Integer.parseInt(obj.toString());
}
catch(Exception ex){
return 0;
}
}
public static float ToFloat(Object obj) {
try{
return Float.parseFloat(obj.toString());
}
catch(Exception ex){
return 0f;
}
}
public static boolean ToBoolean(Object obj){
try{
if(obj.getClass() == Boolean.class)
return (Boolean)obj;
return Boolean.parseBoolean(obj.toString());
}
catch(Exception ex){
return false;
}
}
}
alla suddetta classe di passaggio seguente prova di unità:
package com.abc;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class ConvertTest {
@Test
public void ConvertToInt() {
assertEquals(1, Convert.ToInt(1));
assertEquals(0, Convert.ToInt("Suresh"));
assertEquals(0, Convert.ToInt(null));
assertEquals(0, Convert.ToInt(true));
assertEquals(0, Convert.ToInt(3.3f));
}
@SuppressWarnings("deprecation")
@Test
public void ConvertToFloat() {
assertEquals(1f, Convert.ToFloat(1), 0.001f);
assertEquals(0f, Convert.ToFloat("Suresh"), 0.001f);
assertEquals(0f, Convert.ToFloat(null), 0.001f);
assertEquals(0f, Convert.ToFloat(true), 0.001f);
assertEquals(3.3f, Convert.ToFloat(3.3f), 0.001f);
}
@Test
public void ConvertToBoolean() {
assertEquals(false, Convert.ToBoolean(1));
assertEquals(false, Convert.ToBoolean("Suresh"));
assertEquals(false, Convert.ToBoolean(null));
assertEquals(true, Convert.ToBoolean(true));
assertEquals(false, Convert.ToBoolean(false));
assertEquals(false, Convert.ToBoolean(3.3f));
}
}
- 1. Esiste un equivalente di getch() da C++ in Java?
- 2. Esiste epoll equivalente in Java?
- 3. Esiste un equivalente a memcpy() in Java?
- 4. Esiste un equivalente in C++ della funzione explode() di PHP?
- 5. Esiste un equivalente di Groovy in C#?
- 6. Esiste un equivalente di C# indexer in Java?
- 7. Esiste un equivalente del metodo Java equals in C++?
- 8. Esiste un equivalente C++ di una NullPointerException
- 9. Esiste un equivalente Java della libreria Ostrich di Twitter?
- 10. Esiste un C++ equivalente a BigDecimal di Java?
- 11. Esiste un equivalente Java alla parola chiave 'checked' di C#?
- 12. Esiste un equivalente in C++ per getcwd?
- 13. Esiste un equivalente di str_replace in C++?
- 14. Esiste un equivalente standard getch() in C++?
- 15. Esiste un equivalente Java della funzione http_build_query di PHP?
- 16. Esiste un equivalente alla classe Bootstrap in un plug-in
- 17. Equivalente finale statico C++ Java
- 18. Esiste un equivalente di std :: vector in PHP in C++?
- 19. Equivalente Java della crittografia C# AES
- 20. Equivalente Java della classe di versione di .NET?
- 21. Esiste .Net TypeConverter equivalente in Java
- 22. C# equivalente alla risorsa Java
- 23. Esiste un equivalente Java di SignalR?
- 24. Equivalente Jaxb in C#
- 25. In Java 8, esiste una classe ByteStream?
- 26. Esiste un equivalente per la classe Scanner in C# per le stringhe?
- 27. Esiste un equivalente JavaScript per C# 'params'?
- 28. Esiste un equivalente a urllib di python in c/C++?
- 29. Ada equivalente della variabile statica locale da C/C++
- 30. C# Equivalente di Java IdentityHashMap
Sto solo andando a commentare che la creazione di una classe wrapper come questo è completamente inutile per java ... – Brendan