11
làm thế nào tôi có thể tạo ra một JavaScriptObject bằng tay khi tôi có lớp nàyCách tạo JavaScriptObject bằng tay trong GWT?
public class Person extends JavaScriptObject{
protected Person(){}
public final native String FirstName()/*-{
return this.firstName;
}-*/;
public final native String LastName()/*-{
return this.lastName;
}-*/;
}
tôi đang hỏi, vì tôi có một mảng này JavaScriptObject Peron
public JsArray<Person> persons = JavaScriptObject.createArray().cast();
và tôi muốn đầy đủ mảng này với một số đối tượng Người này
Peson a = new Person();
a.setfirstName(textField1.getText());
a.setLastName(textField2.getText());
persons.push(a)
nhưng tôi không biết cách tạo đối tượng như vậy bằng tay. Các giá trị của firstName và lastName i sẽ lấy từ một thành phần giao diện người dùng như textField. Xin vui lòng giúp đỡ!
Cảm ơn rất nhiều. tôi có hai câu hỏi: 1) là có một sự khác biệt giữa bạn và phiên bản này -> Person a = Person.createObject() cast(); 2) làm thế nào tôi có thể vượt qua các giá trị cho đối tượng người? sao tôi nên tạo các phương thức setter? nhưng trong các lớp mở rộng JavaScriptObjects thì không có biến nào được phép. vì vậy làm thế nào tôi có thể vượt qua các giá trị lastName và firstName cho đối tượng? – Pero
Không có sự khác biệt giữa hai phương thức createObject, vì nó là một phương thức tĩnh trên lớp JavascriptObject. – krishnakumarp
Đối với câu hỏi thứ 2, bạn mở rộng JavascriptObject để truy cập các đối tượng JSON gốc. Những người định cư sẽ là các cuộc gọi tự nhiên gán giá trị cho các biến Javascript gốc. Tôi nghĩ vì lý do này, họ đã đặt một quy tắc mà các biến thành viên không được phép trong các loại lớp phủ. Vui lòng đọc https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsOverlay để biết thêm chi tiết. – krishnakumarp