Trong C# Tôi thích sử dụng lớp Chuyển đổi. Nó đã chuyển đổi từ loại này sang loại khác dễ dàng và nhất quán. Tôi đã nghĩ về việc viết một lớp tương tự trong Java, nhưng tôi không muốn phát minh lại bánh xe. Vì vậy, tôi googled xung quanh để xem nếu một điều như vậy tồn tại và không nhận được kết quả tốt. Vì vậy, là bất cứ ai nhận thức được một cái gì đó như thế này hoặc trong libs tiêu chuẩn, google ổi, hoặc commache apache?Trong Java có tương đương với lớp Chuyển đổi từ C# không?
Trả lời
Không có lớp nào giống như thế này trong java.
Thực tiễn được chấp nhận trong java là chỉ truyền nguyên thủy cho nhau. Đây là cách chuyển đổi dễ dàng và nhất quán từ loại này sang loại khác.
float bar = 4.0f;
int foo = (int) bar;
Và để chuyển đổi nguyên thủy thành chuỗi, đó là 'Integer.parseInt',' Float.parseFloat', v.v. – Vulcan
Vâng. Tôi biết các phương pháp này. C# có chúng. Lớp C# Convert là một lớp tiện lợi. Nó hoàn toàn không cần thiết, nhưng nó làm cho mã sạch hơn và nhanh hơn để loại ra. –
Những người quen thuộc với một mô hình cụ thể sẽ luôn bỏ lỡ những quy ước khi họ chuyển sang một thứ khác. Trong thực tế, một lớp tiện lợi để đúc giữa các loại giá trị cơ bản trong Java là không cần thiết (và có thể làm xáo trộn). Khi tôi đến từ Visual Basic 6, tôi đã bỏ lỡ chức năng Choose (i, args ...) vì vậy tôi vẫn viết một cái vào ngày này (nó là một lớp lót) nhưng nó thực sự không cần thiết (và vì tất cả các arg phải đánh giá có một sự cân bằng hiệu suất). – scottb
Bạn có thể tạo lớp Chuyển đổi riêng của bạn một cách dễ dàng
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;
}
}
}
Các đơn vị kiểm tra trên lớp qua sau:
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. Có tương đương với getch() từ C++ trong Java không?
- 2. C# tương đương với Iterator trong Java
- 3. Tương đương với C# ObservableCollection trong Java
- 4. Tương đương với lớp Java BigDecimal trong C# là gì?
- 5. C# tương đương với từ khóa 'thực hiện' của Java?
- 6. Có tương đương trong C# với mã Java này không?
- 7. Có tương đương C++ với BigDecimal của Java không?
- 8. Java tương đương với loại lớp động C#?
- 9. C# tương đương với tài nguyên Java
- 10. C# có tương đương với lớp lồng nhau Java tĩnh không?
- 11. Tương đương với C++ map.lower_bound trong Java
- 12. Python có tương đương với 'chuyển' không?
- 13. Có tương đương C# với CountDownLatch của Java không?
- 14. Có tương đương với phương thức Java bằng C++ không?
- 15. Có Java tương đương với libevent không?
- 16. Chuyển đổi con trỏ void ** sang loại Java tương đương
- 17. C++ tương đương với Java này
- 18. Có tương đương epoll trong Java không?
- 19. Có C# tương đương với File.separator trong Java
- 20. Tương đương với TreeSet trong Java tới C# .net
- 21. Ruby có tương đương với TimeSpan trong C# không?
- 22. C# tương đương với charAt của Java()?
- 23. C# tương đương với Java dụ initializer
- 24. C# Uri.EscapeDatastring() tương đương với Java
- 25. Có tương đương với Groovy trong C# không?
- 26. Có tương đương C++ với getcwd không?
- 27. Có tương đương với tĩnh của C trong C# không?
- 28. C# có tương đương với gói #pragma trong C++ không?
- 29. Tương đương với các giao diện Java trong C++?
- 30. Tương đương Jaxb trong C#
tôi chỉ cần đi đến nhận xét rằng việc tạo ra một lớp wrapper như thế này hoàn toàn vô nghĩa đối với java ... – Brendan