是否可以用java打印/记录函数?

tvmytwxo  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(233)

当我在探索es6时,我遇到了这个正在使用的关键字。如果使用 console.log(this) 对象包含一个函数,然后打印/记录函数代码。我觉得很有意思。我在探索java语言是否可以使用类似的打印/记录函数的方法。不幸的是,我找不到。
可以用java打印函数吗?
如果没有任何原因的话,为什么在java中禁止它呢[是因为java没有使用回调机制吗?]

gdx19jrr

gdx19jrr1#

在ecmascript中,所有不是原语的东西都是对象,因此函数也只是一个对象。这也是为什么您可以使用 this 关键字。
这在java中根本不是这样。请记住,java和javascript是非常不同的语言。另外,java必须编译,而ecmascript则不能。因此,即使您找到了一种方法并编写了一堆自定义代码来实现这一点,反编译时最终的结果也不会是一个精确的表示。

kh212irz

kh212irz2#

很有趣。在es6中,声明并分配给函数的函数可以稍后使用变量调用。

var e= function() {
      a= 5; 
      b = 7;
     console.log(a * b);}; 
    console.log(e) // prints the function..interesting ,cant think of any great value tbh.
    e();   // executes the function

在java中,如果您想将一个方法分配给一个变量,可以通过多种方式使用FunctionInterface。即。功能,消费者,双消费者。
但是您将无法在这些变量中获得原始源代码语法。您必须解析字节码(.class文件)。如果你需要控制源代码。

相关问题