6

在 .NET 中,当我有一个可以作为多种类型存在的“值”时,我可以轻松地使用 TypeConverter 在这些类型(货币类型、xml 数据与对象表示等)之间进行切换。在 Java 中,我不确定处理这种情况的首选方法是什么。Java中是否有等效的TypeConverter?

4

3 回答 3

2

对于来自 .NET 世界的人来说,没有一个开箱即用的工具将是一个惊喜。这是因为我们有诸如原语(int,long)等,它们的原语包装器(Integer,Long 等),当您需要时从 int 到 Integer 的自动装箱(这是来自 JDK 1.5)。

因此,我们这些可怜的 Java 开发人员手动转换事物(@Boolean 上面给出的一些示例)以及在执行这些操作时使用 == 运算符的无尽麻烦。例如:缓存最多 127 个自动装箱的整数。

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
}

如果您正在编写一个需要大量数据转换的大型应用程序,您可以自己编写一些东西。Spring 的“TypeConverter”接口可以是一个不错的开始。

如果您遇到问题,请使用此链接http://imagejdocu.tudor.lu/doku.php?id=howto:java:how_to_convert_data_type_x_into_type_y_in_java

于 2010-02-17T14:44:16.343 回答
0

好吧,您可以对事物进行类型转换...例如,如果您有一个包含字符串的 List 对象..您将从列表中获取一个 String ,如下所示:

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

如果您尝试将字符串转换为数字..您将执行类似于此的操作:

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

我通过这样做将整数转换为字符串时作弊:

int i = 200;
String s = "" + i;
于 2010-02-16T22:09:26.887 回答
0

TypeConverter 添加到 .net 部分是为了允许交互式 UI 设计人员将值显示为字符串,并让用户编辑 UI 设计人员不理解的类型的适当值。

我认为 TypeConverter 也被数据绑定使用。

您可以在自己的软件中使用 TypeConverter 在编译时知道的类型之间进行转换,这是一个副作用,而不是创建它们的主要用例。

由于 Java 从未尝试支持“RAD”工具,因此它对 TypeConverter 和 PropertyDescriptors 等的需求并不相同。 在某种程度上,.net 旨在允许与 VB6 支持的相同类型的 UI 开发。

于 2010-11-01T09:56:50.930 回答