[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

RE: Field



Andrea Thome Suman writes:
 > Para acessar um campo de um Object podemos usar algo do tipo:
 > 
 > object.field;
 > 
 > object sendo do tipo Object e field do tipo String?

Não. Vejam o método getField da classe Class. Vejam também a classe
java.lang.reflect.Field. 

Voces vão precisar de algo assim:

    DBObject obj;     // um objeto
    Class  objClass;  // a classe desse objeto
    String fieldName; // o nome de um campo

    int intVal;       // valor do campo (se int)
    double doubleVal; // valor do campo (se double)
    ...
    String stringVal; // valor do campo (se String)

    ...
                      
    Field field = objClass.getField(fieldName);
    Class fieldType = field.getType();
    if (fieldType.equals(Integer.TYPE)) {
        intVal = field.getInt(obj);
    }
    else if (fieldType.equals(Double.TYPE)) {
        doubleVal = field.getDouble(obj);
    }
    else if (...) {
    ...  // outros tipos primitivos
    }
    else if (fieldType.equals(String.Class)) {
        Object val = field.get(obj);
	stringVal = (String) val;
    }
    else {
        // erro: considere que o tipo de um campo de um DBObject
        //       deve ser primitivo ou String
    }

Reverbel