Tôi cần các giá trị chuyển đổi kiểu T thành JsArray.Cách tạo GWT JsArray?
eg. I have String1, String2 .... Stringn
I need to convert those String into JsArray<String>
Mọi người có thể giúp tôi không?
Cảm ơn trước, Gnik
Tôi cần các giá trị chuyển đổi kiểu T thành JsArray.Cách tạo GWT JsArray?
eg. I have String1, String2 .... Stringn
I need to convert those String into JsArray<String>
Mọi người có thể giúp tôi không?
Cảm ơn trước, Gnik
Bạn không cần phải lựa chọn nhiều: sáng tạo một JsArrayString
và thêm vào nó, hoặc sử dụng JSNI.
JsArrayString arr = JavaScriptObject.createArray().cast();
arr.push(str1);
arr.push(str2);
arr.push(str3);
hoặc
static native JsArrayString asJsArray(String str1, String str2, String str3) /*-{
return [str1, str2, str3];
}-*/;
Rõ ràng, sau này không quy mô, trong khi được nhanh hơn.
Nó thực sự phụ thuộc chính xác những gì bạn cần làm.
Sử dụng Generics, có thể làm điều đó như thế này:
public <T extends JavaScriptObject> JsArray<T> createGenericArray(T... objects) {
JsArray<T> array = JavaScriptObject.createArray().cast();
for (T object : objects) {
array.push(object);
}
return array;
}
Rõ ràng, String
không mở rộng JavaScriptObject
. Bạn sẽ cần phải có quá tải để tính toán cho các loại nguyên thủy. (Hoặc, ít một cách an toàn, bạn có thể loại bỏ các giới hạn của T
để cho phép loại tùy ý Bạn sẽ cần phải được nhiều hơn nữa cẩn thận nếu bạn đã làm như vậy..)
Sử dụng JsArrayUtils
như thế này:
JsArray<String> arr = JsArrayUtils.readOnlyJsArray(new String[] { string1, string2 });
Hãy xem các javadoc:
com.google.gwt.core.client.JsArrayUtils lớp
Utility để thao tác Các mảng JS. Các phương thức này không nằm trên các lớp con JavaScriptObject khác, chẳng hạn như JsArray, vì việc thêm các phương thức mới có thể phá vỡ các kiểu con hiện có.