Teniendo en cuenta la clase de valor:¿Crear nuevo objeto usando la reflexión?
public class Value {
private int xVal1;
private int xVal2;
private double pVal;
// constructor of the Value class
public Value(int _xVal1 ,int _xVal2 , double _pVal)
{
this.xVal1 = _xVal1;
this.xVal2 = _xVal2;
this.pVal = _pVal;
}
public int getX1val()
{
return this.xVal1;
}
...
}
estoy tratando de crear una nueva instancia de esa clase usando reflection
:
del principal:
.... // some code
....
....
int _xval1 = Integer.parseInt(getCharacterDataFromElement(line));
int _xval2 = Integer.parseInt(getCharacterDataFromElement(line2));
double _pval = Double.parseDouble(getCharacterDataFromElement(line3));
Class c = null;
c = Class.forName("Value");
Object o = c.newInstance(_xval1,_xval2,_pval);
...
Esto no funciona, la producción de Eclipse : The method newInstance() in the type Class is not applicable for the arguments (int, int, double)
En caso afirmativo, ¿cómo puedo crear un nuevo objeto Value utilizando reflection
, wh Antes de invocar el Constructor
de Value
?
Gracias
Gracias, funciona muy bien! uno piensa, ¿cómo uso el objeto Object ahora? ya que es un objeto "Valor", pero también es un objeto Objeto. Así que solo use casting, como "Value currentValueNode = (Value) myObject;" ? – ron
Ver respuesta editada. Cuando comienzas con el literal de clase en lugar de 'Class.forName()', puedes aprovechar los genéricos. –
Marko, tu nueva solución funciona solo sin el "final". Gracias ! – ron