Với lớp Value:Tạo đối tượng mới bằng cách sử dụng sự phản chiếu?
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;
}
...
}
Tôi đang cố gắng để tạo ra một thể hiện mới của lớp đó sử dụng reflection
:
từ chính:
.... // 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);
...
này không hoạt động, sản lượng của Eclipse : The method newInstance() in the type Class is not applicable for the arguments (int, int, double)
Nếu có, làm cách nào để tạo đối tượng Giá trị mới bằng cách sử dụng reflection
, wh Tôi có gọi số Constructor
của Value
không?
Cảm ơn
Cảm ơn, hoạt động tuyệt vời! một suy nghĩ mặc dù, làm thế nào để tôi sử dụng đối tượng Object bây giờ? vì nó là một đối tượng "Value", nhưng nó cũng là một đối tượng Object. Vì vậy, chỉ cần sử dụng tính năng truyền, như "Giá trị hiện tạiValueNode = (Giá trị) myObject;" ? – ron
Xem câu trả lời đã chỉnh sửa. Khi bạn bắt đầu với class literal thay vì 'Class.forName()', bạn có thể tận dụng Generics. –
Marko, bản sửa lỗi mới của bạn chỉ hoạt động mà không có "cuối cùng". cảm ơn ! – ron