2012-04-29 80 views
17

Có cách nào tốt để chuyển đổi JavaScript sang Java không?Chuyển đổi JavaScript sang Java

Tôi có tệp JavaScript cần được chuyển đổi sang Java. Đó là một thành phần lịch được viết bằng JavaScript.

+1

những gì bạn có thể làm là đặt nó trong HTML 'webView' và quá tải hàm 'shouldOverrideUrlLoading' và kiểm soát những gì xảy ra khi lịch được nhấp. xem [câu hỏi này] (http://stackoverflow.com/questions/4780899/intercept-and-override-http-requests-from-webview) để biết thêm chi tiết. – thepoosh

+2

Bạn có thể có nhiều thành công hơn [transpiling] (http://jbueza.blogspot.com/2011_07_01_archive.html) Java to javascript. Angry Birds trên trình duyệt được thực hiện theo cách này –

+0

bạn không thể. Chưa có công cụ chuyển đổi nào được xây dựng cho việc này. :) –

Trả lời

8

Không, bạn không thể.

Các tên tương tự không may nhưng JavaScript và Java là các ngôn ngữ hoàn toàn khác nhau.

Từ Wikipedia:

JavaScript sử dụng cú pháp bị ảnh hưởng bởi điều đó bản sao C. Javascript nhiều tên và quy ước đặt tên từ Java, nhưng hai ngôn ngữ là khác không liên quan và có ngữ nghĩa rất khác nhau. Thiết kế chính các nguyên tắc trong JavaScript được lấy từ các ngôn ngữ lập trình tự và Đề án .

Chính xác hơn: tất nhiên bạn có thể. Nhưng điều đó liên quan đến việc viết hoặc kết hợp một công cụ JS, mã nhị phân hoặc trình diễn giải của một số loại trong chương trình java của bạn. Một transpiler hoàn chỉnh có lẽ là có thể nhưng sẽ không dễ dàng, đặc biệt là theo hướng này, và tất nhiên đã không được thực hiện.

+14

Tất nhiên bạn có thể, nếu mã javascript được viết theo cách OO, thì không có lý do gì mà một trình chuyển đổi không thể chuyển đổi nó thành java. JS xử lý thừa kế một chút khác nhau, và không có các lớp mà sẽ làm cho nó trở thành một thách thức .. Bạn vẫn sẽ nhận được một loạt các vấn đề biên dịch có lẽ. Nhưng tôi muốn nói nó KHÔNG phải là không thể. –

+1

Chúc may mắn với điều đó. Ngữ nghĩa của các hàm là các đối tượng và các lớp là các bản đồ băm trong JS không thể được biểu diễn trong Java, ít nhất là không có trong bất kỳ biểu mẫu có thể sử dụng nào. – rustyx

+0

Cả hai đều đang sử dụng ngôn ngữ hoàn chỉnh, vậy tại sao không? –

Các vấn đề liên quan