2014-01-19 50 views
1

我最近正在研究ASM API,他们使用Nodes很多。我试图找出真正的节点,虽然我还没有遇到任何简单的综合答案。那么,有人能够用简单的语言解释一个节点是什么以及它用于什么?什么是Java ASM节点?

编辑:我问一个节点是在ASM API

+5

同样只是为了确保,你* *是仅ASM API的范围内提出,对不对?否则,可能会有大量的答案。 –

+0

是的,我在ASM API的背景下提问。 –

+1

我猜测它是给定Java位的抽象语法树(AST)的一个节点。 – yshavit

回答

2

Node的背景是什么在抽象的意义上使用。为了理解他们的节点,你一定要明白一个Node是什么。

A 网络是一组链接在一起的项目。这些项目可以通过不同的方式相互连接,因此存在不同类型的网络。

A 节点是该网络中的项目。例如,计算机网络:

  Client 
     /
Server ---- Client 
      \ 
      Client 

该网络中有4个节点。 1台服务器和3台客户机。如果你想,你可以把它们当作ServerNodeClientNode

现在,在ASM的上下文中,您的网络将是您操作字节码的代码。现在你知道你的网络是什么了,区分节点是非常自我解释的。

MethodNode代表一种方法。查看文档,可以看到它包含字段,如String nameString signatureint maxStack。这些是您正在查看的特定方法(MethodNode)的属性。

术语Node是整个API