Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以在Javascript中编写一个Java方法,比如toString,如果在一个方法上调用它,它会打印出该方法的源代码?_Javascript_Java_Compilation - Fatal编程技术网

有没有一种方法可以在Javascript中编写一个Java方法,比如toString,如果在一个方法上调用它,它会打印出该方法的源代码?

有没有一种方法可以在Javascript中编写一个Java方法,比如toString,如果在一个方法上调用它,它会打印出该方法的源代码?,javascript,java,compilation,Javascript,Java,Compilation,抱歉,如果这是一个微不足道的问题,那么如果已经有人问过这个问题,请告诉我这个问题 我知道javascript中的tostring方法,如果对函数调用,将打印源代码(更多信息:)。在Java中也可以做同样的事情吗 因此,如果我有以下标识函数定义: public class class1 { int f1(int x){ return x; } } 以及以下主要功能: class Main { public static void main(String

抱歉,如果这是一个微不足道的问题,那么如果已经有人问过这个问题,请告诉我这个问题

我知道javascript中的tostring方法,如果对函数调用,将打印源代码(更多信息:)。在Java中也可以做同样的事情吗

因此,如果我有以下标识函数定义:

public class class1 {

    int f1(int x){
        return  x;
    }
}
以及以下主要功能:

class Main {
    public static void main(String args[]) {

        class1 c1 = new class1();

        ???? 

    }
}
有没有什么东西可以代替“??”来打印类似的东西

int f1(int x){
    return  x;
}

免责声明:我不是Java或任何编程语言方面的专家。然而,我知道如何在网上找到信息

这个概念在Java中似乎不太可行。开始:

程序如C++或<强> java < /St>需要运行前编译。源代码通过一个称为编译器的程序传递,编译器将其翻译成机器能够理解并执行的字节码。相反,JavaScript没有编译步骤。相反,浏览器中的解释器读取JavaScript代码,解释每一行并运行它。更现代的浏览器使用一种称为即时(JIT)编译的技术,它将JavaScript编译为即将运行的可执行字节码

基本上,JavaScript具有直接从文件中读取源代码并动态执行的优势。由于许多原因,包括安全性,编译语言(如Java)在默认情况下不会内置这种功能。应用程序应该能够在不允许黑客尽可能多地访问其源代码的情况下运行

有人尝试过做各种形式的你感兴趣的事情,但最简单的两种方法似乎是

  • 逐行打印原始
    .java
    文件
  • 存储对整个代码或所需方法的字符串引用
  • 似乎还可以打印方法名,但不能打印正文

    除此之外,从编译的、运行的java程序中可能得到的唯一东西是字节码,这需要反编译器有希望理解其背后的源代码

    您可以通过以下几个链接继续阅读:


    免责声明:我不是Java或任何编程语言方面的专家。然而,我知道如何在网上找到信息

    这个概念在Java中似乎不太可行。开始:

    程序如C++或<强> java < /St>需要运行前编译。源代码通过一个称为编译器的程序传递,编译器将其翻译成机器能够理解并执行的字节码。相反,JavaScript没有编译步骤。相反,浏览器中的解释器读取JavaScript代码,解释每一行并运行它。更现代的浏览器使用一种称为即时(JIT)编译的技术,它将JavaScript编译为即将运行的可执行字节码

    基本上,JavaScript具有直接从文件中读取源代码并动态执行的优势。由于许多原因,包括安全性,编译语言(如Java)在默认情况下不会内置这种功能。应用程序应该能够在不允许黑客尽可能多地访问其源代码的情况下运行

    有人尝试过做各种形式的你感兴趣的事情,但最简单的两种方法似乎是

  • 逐行打印原始
    .java
    文件
  • 存储对整个代码或所需方法的字符串引用
  • 似乎还可以打印方法名,但不能打印正文

    除此之外,从编译的、运行的java程序中可能得到的唯一东西是字节码,这需要反编译器有希望理解其背后的源代码

    您可以通过以下几个链接继续阅读:


    可能是的,但不是一个带有ready命令的小问题。JavaScript是一种解释语言,执行环境可以访问原始形式的源代码。这就是如何在浏览器控制台中检查它,并查看与源代码中相同的变量名

    虽然编译/解释的区别很明显,但在执行之前肯定会对其进行修改。Java的即时编译所使用的源代码可能比完全编译的二进制文件可读性更强,但它不是源代码。如果正在运行的程序无法访问源代码,则输出源代码的能力会降低。在IDE中运行的调试器可以引用源中的问题;否则,您仅限于


    这就是为什么基诺·克莱顿(Keno Clayton)提出了关于奎因计划的问题,该计划旨在自我复制。通过将源代码硬编码为类属性来输出源代码。您可以采用类似的方法,使用一个预编译脚本遍历所有方法并从它们的源代码中生成字符串,但结果将非常庞大且可能敏感。

    可能是的,但不是一个带有ready命令的简单脚本。JavaScript是一种解释语言,执行环境可以访问原始形式的源代码。这就是如何在浏览器控制台中检查它,并查看与源代码中相同的变量名

    虽然编译/解释的区别很明显,但在执行之前肯定会对其进行修改。Java的即时编译所使用的源代码可能比完全编译的二进制文件可读性更强,但它不是源代码。如果正在运行的程序无法访问源代码,则输出源代码的能力会降低。在IDE中运行的调试器可以引用源中的问题;否则,您仅限于

    这就是基诺·克莱顿建议的原因