Verilen sınıf Değeri:Yansıma kullanarak yeni nesne oluşturulsun mu?
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;
}
...
}
Ben reflection
kullanarak bu sınıfın yeni bir örneğini oluşturmak çalışıyorum: Main
:
.... // 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);
...
Bu işe yaramazsa, Eclipse'nın çıkışını : The method newInstance() in the type Class is not applicable for the arguments (int, int, double)
Öyleyse, reflection
, wh kullanarak yeni bir Değer nesnesini nasıl oluşturabilirim? 12 Constructor
'un Value
'unu çağırıyorum?
Teşekkürler
Teşekkür okuyabilir ayrıntılar için
yazabilir, inşaat büyük! Bir düşünün, şimdi Object nesnesini nasıl kullanırım? bir "Değer" nesnesi olduğu için, aynı zamanda bir Nesne nesnesidir. Bu nedenle, "Value currentValueNode = (Value) myObject; gibi") ? – ron
Düzenlenmiş cevaba bakınız. Class.forName() 'yerine sınıf değişkeni ile başladığınızda, jeneriklerden yararlanabilirsiniz. –
Marko, yeni düzeltmeniz sadece "son" olmadan çalışır. Teşekkürler ! – ron