Есть ли.Net TypeConverter, эквивалентный в Java

В.NET, когда у меня было "значение", которое могло существовать как несколько типов, я мог легко использовать TypeConverter для переключения между теми типами (типы валюты, данные XML по сравнению с объектным представлением, ect). В Java я не уверен, какой предпочтительный способ обработать эту ситуацию. Существует ли TypeConverter, эквивалентный в Java?

6
задан insipid 16 February 2010 в 21:59
поделиться

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 , если у вас возникнут проблемы

2
ответ дан 17 December 2019 в 20:31
поделиться

Ну, вы можете приводить типы вещей ... например, если у вас есть объект 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;
0
ответ дан 17 December 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: