Tôi không rõ ràng về các quy tắc về cách các loại được chuyển đổi giữa Javascript và Java khi sử dụng (Mozilla) Rhino.Chuyển các loại phổ biến giữa Java và (Rhino) Javascript
Có một số chi tiết cụ thể trong tài liệu về String
:
Điều quan trọng cần lưu ý rằng Java chuỗi và JavaScript dây không giống nhau [...] Rhino cung cấp một số giúp đỡ trong việc giảm sự khác biệt giữa hai loại. Đầu tiên, bạn có thể chuyển một chuỗi JavaScript đến một phương thức Java yêu cầu một chuỗi Java và tê giác sẽ thực hiện chuyển đổi. Chúng tôi đã thực sự thấy tính năng này hoạt động trên cuộc gọi tới hàm tạo java.lang.String trong ví dụ trước. Rhino cũng làm cho các phương pháp JavaScript sẵn cho chuỗi Java nếu lớp java.lang.String không đã định nghĩa chúng
Nhưng những gì về những người khác? Nếu tôi chuyển Số javascript sang phương thức Java, hãy chờ int
, double
(hoặc Integer
hoặc Double
), nó sẽ được chuyển đổi không? Điều gì về long
/Long
? (Mà sẽ không phù hợp trong một Double
và như vậy sẽ không phù hợp trong một số JS?
gì về Java phương pháp trở về những giá trị này?
Sau đó có Boolean
/boolean
. Là những JS hằng true
và false
chuyển đổi mã để và từ giá trị Java thích hợp? tôi đã nhìn thấy như
java.lang.Boolean.TRUE.booleanValue()
sử dụng từ JS, vì vậy ít nhất một số người nghĩ nó không phải là.
tôi hav e nhìn vào tài liệu về Rhino của Mozilla nhưng chỉ ra nếu tôi đã bỏ sót điều gì đó hiển nhiên.
Tôi đang đi qua một 'boolean' từ Java để * Javascript biên soạn với Rhino Java bytecode * và như xa như tôi có thể nói, nó được xử lý như một Boolean trong Javascript quá. Nhưng đó chỉ là 'boolean'. – KajMagnus