【发布时间】:2012-03-13 08:04:55
【问题描述】:
可以说,一个类中有一些导入语句。当为该类生成字节码时,这些导入语句会发生什么。
如果在运行时忽略了 import 语句,那么在运行时如何解决对这些类方法的依赖关系。
【问题讨论】:
-
为什么不自己去寻找呢?编写一个类的一些变体:一个依赖于外部类,一个依赖于(例如)
java.util.List通过导入,一个依赖于List,但使用它完全限定(没有导入)。然后在每个上使用javap -c,看看会发生什么。 -
对@yshavit 注释的补充,在编译期间使用
javac -g:none Foo.java在.class文件中根本不生成调试信息(例如行号),然后比较生成的.classes 和它们在字节级别上将是相同的,这可以通过测试获取它们中的每一个的哈希值。
标签: java compiler-construction import bytecode