W języku C# lubiłem używać klasy Konwertuj. Dzięki temu konwersja z jednego rodzaju na inny była łatwa i spójna. Myślałem o napisaniu podobnej klasy w Javie, ale nie chcę wymyślać koła. Więc szukałem go, aby sprawdzić, czy coś takiego istnieje i nie osiąga dobrych wyników. Więc czy ktoś jest świadomy czegoś takiego w standardowych bibliotekach, Google Guava lub Common Apache?W Javie jest odpowiednik klasy Konwertuj z C#?
Odpowiedz
Nie ma takiej klasy w języku Java.
Przyjęta praktyka w języku Java polega na zwykłym rzucaniu prymitywów. Jest to łatwy i spójny sposób przekształcania z jednego typu na inny.
float bar = 4.0f;
int foo = (int) bar;
A do konwersji prymitywów na ciągi, to 'Integer.parseInt',' Float.parseFloat', i tak dalej. – Vulcan
Tak. Jestem świadomy tych metod. C# ma je. Klasa C# Convert jest klasą wygody. Jest to całkowicie niepotrzebne, ale sprawia, że kod jest czystszy i szybszy do wypisania. –
Ludzie, którzy są przyzwyczajeni do konkretnego paradygmatu, zawsze będą tęsknić za tymi konwencjami, kiedy migrują do czegoś innego. W rzeczywistości klasa wygody dla rzutowania wśród podstawowych typów wartości w Javie jest niepotrzebna (i prawdopodobnie zaciemniająca). Kiedy przyszedłem z Visual Basic 6, przegapiłem funkcję Choose (i, args ...), więc wciąż piszę jedną do dziś (jest to jedna linijka), ale to naprawdę nie jest konieczne (i ponieważ wszystkie argumenty muszą być oceniane jest kompromitacja wydajności). – scottb
Można tworzyć własne klasy Convert łatwo
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;
}
}
}
Powyższa klasa mijania następujący test jednostka:
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. odpowiednik memcmp() w Javie?
- 2. Co to jest odpowiednik C#/.NET BufferedInputStream (w Javie)?
- 3. Odpowiednik metod anonimowych C# w Javie?
- 4. Czy istnieje odpowiednik getch() z C++ w Javie?
- 5. co to jest C# równoważne z Iterator w Javie
- 6. z innej klasy w Javie
- 7. Odpowiednik std :: vector w Javie?
- 8. Odpowiednik LINQ w Javie 8
- 9. Java odpowiednik klasy .NET's Version?
- 10. Odpowiednik funkcji krypt PHP w Javie
- 11. Tekstowy odpowiednik klasy CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
- 12. Co klasy klasy [B reprezentuje w Javie?
- 13. Odpowiednik constexpr z C++?
- 14. Co to jest odpowiednik C# w dynamicznym C++ w C++?
- 15. Jaki jest odpowiednik Java's Thread.sleep() w Objective-C/Cocoa?
- 16. Co to jest odpowiednik C# w java.util.regex?
- 17. Jaki jest odpowiednik D's taskPool.parallel() w C++
- 18. Jaki jest odpowiednik Math.abs() w Objective-C?
- 19. C++ odpowiednik "super"?
- 20. Odpowiednik anonimowej klasy języka Java w języku C#?
- 21. Co to jest odpowiednik UINT32_MAX w C++?
- 22. Jaki jest odpowiednik Thread.SetApartmentState w C++?
- 23. C-jak enum w Javie
- 24. Konwertuj * niektóre * klasy kolumn w data.table
- 25. Jak uzyskać obiekt klasy z nazwy klasy w Javie
- 26. C++ Java statyczny odpowiednik końcowy
- 27. varargs typu klasy w Javie
- 28. Podklasa klasy abstrakcyjnej C++ w Javie przy użyciu JNI
- 29. Dostęp do klasy zewnętrznej "super" z klasy wewnętrznej w Javie
- 30. Co to jest odpowiednik C# z instrukcją With w VB?
Idę tylko komentarz, że utworzenie klasy otoki takiego jest całkowicie bezcelowe dla java ... – Brendan