我编写了一些Java代码,我想将其转换为JavaScript.我想知道是否可以使用GWT编译器将提到的Java代码编译成JavaScript代码,保留方法,变量和参数的所有名称.我尝试使用-draftCompile关闭代码优化来编译它,但是方法名称被破坏了.如果GWT编译器不能这样做,可以使用其他一些工具吗?
更新
Java代码只依赖于GWT模拟类,因此GWT编译器肯定能够处理它.
更新2
这个Java方法:
public String method()
Run Code Online (Sandbox Code Playgroud)
翻译成这个JavaScript函数:
function com_client_T_$method__Lcom_client_T_2Ljava_lang_String_2()
Run Code Online (Sandbox Code Playgroud)
使用编译器选项:
-style DETAILED
-optimize 0
-draftCompile
Run Code Online (Sandbox Code Playgroud)
所以名称不能保留.但有没有办法控制它们的变化?
澄清
比如说,您有一个用Java编写的排序算法(或其他一些简单的Maths实用程序).方法sort()采用整数数组.并在排序的数组中返回这些整数.现在说,我有Java和JavaScript应用程序.我想用Java编写这个方法一次,通过GWT编译器运行它,并保持方法名称相同,或者以可预测的方式更改它,这样我就可以检测它并知道如何将其更改回排序( ).然后我可以将该代码放在我的JavaScript应用程序中并使用它.如果Java版本发生变化,我也可以自动重新生成它.我在技术上有一个非常好的理由,我在高层次上理解GWT的概念,我只是在寻找这一点的答案.
结论
主要问题的答案是否定的.虽然方法名称可以在某种程度上保留,但它的主体不可用.其中的方法调用分散在整个生成的文件中,因此,它们不能在JavaScript库中使用,这是本主题的重点.
我尝试使用Google云端硬盘文档中的示例.所以代码是:
var request = gapi.client.drive.files.delete({
'fileId' : someFileId
});
request.execute(function(resp)
{
console.log(resp);
});
Run Code Online (Sandbox Code Playgroud)
应用程序安装正确,我正在使用drive.file范围.问题是该文件未被删除.它仍然存在于Drive UI中,无法再打开或下载.文件已损坏.
正在发送的请求不是文档中所述的DELETE https://www.googleapis.com/drive/v2/files/fileId.这是一个POST https://www.googleapis.com/rpc?key=API_KEY.正文包含一个JSON数组:
[{"jsonrpc":"2.0","id":"gapiRpc","method":"drive.files.delete","params":{"fileId":"someFileId"},"apiVersion":"v2"}]
Run Code Online (Sandbox Code Playgroud)
Response包含一个空的JSON对象.响应中没有错误,页面中没有JS错误.API Explorer成功删除了该文件.
任何提示?