Pergunta

No .NET, quando eu tinha um "valor" que poderia existir como vários tipos, eu poderia facilmente usar um TypeConverter para alternar entre esses tipos (tipos de moeda, dados XML versus representação do objeto, ECT). Em Java, não tenho certeza de qual é a maneira preferida de lidar com essa situação. Existe um equivalente a TypeConverter em Java?

Foi útil?

Solução

Para alguém de um mundo .NET, será uma surpresa que não haja um fora da caixa. Isso ocorre porque temos coisas como primitivas (int, longas) etc., seus primitivos-wrappers (inteiro, longa etc.), autoboxing de int para inteiro quando você precisar (isso é do JDK 1.5).

Então, nós, desenvolvedores de java pobres, convertemos manualmente as coisas (alguns exemplos dados acima por @Boolean) também os inúmeros aborrecimentos de usar == operadores ao fazê -los. Para Ex: números inteiros autoboxados de até 127, são armazenados em cache.

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
}

Se você está escrevendo um aplicativo enorme que precisa de muita conversão de dados, pode escrever algo por conta própria. A interface "TypeConverter" da Spring pode ser um início decente.

Use este link http://imagejdocu.tudor.lu/doku.php?id=howto:Java:How_TO_CONVERT_DATA_TYPE_X_INTO_TYPE_Y_IN_JAVA Se você tiver algum problema

Outras dicas

Bem, você pode digitar coisas ... por exemplo, se você tiver um objeto de lista que continha seqüências. Você pegaria uma string da lista como esta:

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

Se você estiver tentando converter uma string em um número. Você faria algo semelhante a isso:

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

Eu trapaceio ao converter um número inteiro em uma string fazendo isso:

int i = 200;
String s = "" + i;

TypeConverter, quando adicionado ao .NET parcialmente para permitir que os designers interativos de interface do usuário mostrem valores como string e deixe o usuário editar valores de propriedade dos tipos que o designer da interface do usuário não entende.

Eu acho que o TypeConverter também é usado pela ligação de dados.

O fato de você usar o TypeConverter em seu próprio software para converter entre os tipos que você conhece no tempo de compilação é um efeito colateral e não o principal caso de uso para as quais foram criados.

Como o Java nunca tentou suportar ferramentas "RAD", ele não tinha a mesma necessidade de TypeConverter e PropertyDescriptores etc. Até certo ponto, o .NET foi projetado para permitir o mesmo tipo de desenvolvimento da interface do usuário que o VB6 ativou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top