Concatenação de If's em conversão de tipo

Galera, seguinte:

Se uma variável do tipo Object pode conter qualquer tipo de objeto, como que eu posso garantir o seu cast de uma forma dinâmica sem concatenar um monte de if’s?

exemplo:

[code]Object o = 12;

if (o instanceof Integer){
Integer i = (Integer) o;
} else if (o instanceof Double) {
Double d = (Double) o;
} else if (o instanceof Float) {
Float f = (Float) o;
}

… e assim por diante[/code]

gostaria de evitar este monte de IF’s …

há alguma forma, por exemplo, usando a classe Class???

há como declarar uma variável de forma dinâmica?

Grato !

O que vc está querendo fazer?
Um tratamento genérico para números?

Os wrappers para números herdam de Number.

[]´s

Pois é David, o que eu quero fazer é o seguinte: estou criando em Java uma pequena imitação do dot net framework, que é o DataSet (eu disse pequena mesmo. Sem grandes pretensões).

Estou fazendo isso, com o intuito de usar como um TableModel em uma JTable.

Então a estrutura é a seguinte:

Uma DataSet possui uma coleção de DataRows e de DataColumns. As colunas “DataColumns” tem que ser setadas primeiro no DataSet para que se possa então, criar DataRows através de um método estático.

Segue código:

     [code]
     DataSet rs = new DataSet();

    //cria as colunas
    rs.addColumn(new DataColumn(String.class,"Nome", 0));
    rs.addColumn(new DataColumn(String.class,"Telefone", 1));
    rs.addColumn(new DataColumn(Integer.class,"Idade", 2));
    
    //a partir das colunas criadas, vai se setando cada DataRow.
    DataRow dr = rs.newRow();
    dr.setValue("Nome", "Pedro");
    dr.setValue("Telefone", "111");
    dr.setValue("Idade", 33);
    rs.addRow(dr);

[/code]

Como você pode reparar, ao criar uma DataColumn, eu atribuo também o tipo de dado que ela deverá armazenar. Veja o trecho do código:

        rs.addColumn(new DataColumn(Integer.class,"Idade", 2));

A idéia é a seguinte:

Ao recuperar o dado de uma DataRow tal como o exemplo abaixo, gostaria de que o dado viesse com o tipo certo. O que na verdade ele até vem, pois eu armazenei em sua coleção com o tipo certo. Ex: dr.setValue("Idade", 33)

DataRow dr = rs.getRow(33); Object o = dr.getValue("Idade")

O problema é que a variável que recebe este valor TEM QUE SER DO TIPO Object (conforme trecho acima), e eu gostaria de saber se há uma maneira de o seu tipo der declarado de forma dinâmica.

Obrigado.