gpt4 book ai didi

javascript - 有没有一种方法可以在Javascript中编写像toString这样的Java方法,如果在方法上调用该方法会打印该方法的源代码?

转载 作者:行者123 更新时间:2023-12-01 01:14:54 25 4
gpt4 key购买 nike

抱歉,如果这是一个微不足道的问题,所以如果已经有人问过这个问题,请引导我回答这个问题。

我知道 javascript 中的 tostring 方法,如果在函数上调用,将打印源代码(更多信息: link )。在 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 中似乎不太可行。开始:

JavaScript is an interpreted language, not a compiled language. A program such as C++ or Java needs to be compiled before it is run. The source code is passed through a program called a compiler, which translates it into bytecode that the machine understands and can execute. In contrast, JavaScript has no compilation step. Instead, an interpreter in the browser reads over the JavaScript code, interprets each line, and runs it. More modern browsers use a technology known as Just-In-Time (JIT) compilation, which compiles JavaScript to executable bytecode just as it is about to run.

基本上,JavaScript 的优点是直接从文件中读取源代码并即时执行。出于多种原因(包括安全性),Java 等编译语言默认不会内置此类功能。应用程序应该能够在尽可能不让黑客访问其源代码的情况下运行。

已经尝试过各种形式的您感兴趣的事情,但两种最简单的方法似乎是

  1. 逐行打印原始.java文件
  2. 存储对整个代码或所需方法的字符串引用。

似乎也可以打印方法名称,但不能打印主体。

除此之外,您从已编译、正在运行的 java 程序中可能获得的唯一信息是字节码,这需要反编译器才能理解其背后的源代码。

您可以通过此处的一些链接继续阅读:

How do I print the method body reflectively?

Save a method into a variable, java 8

View a method's implementation (method body) using Java Reflection

关于javascript - 有没有一种方法可以在Javascript中编写像toString这样的Java方法,如果在方法上调用该方法会打印该方法的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54858520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com