作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读 JVM 规范第二版。在本节( Loading )中,ClassCircularityError 被定义为在无法加载类(如果该类是其自己的父类(super class)或超接口(interface))时抛出。我无法想象/想象它,因为当我编译这样一个类时,java编译器会在那里阻止我并且不让我继续。那么如何创建这样一个.class来加载?
public class TestCycle extends TestCycle{
private String memberVar;
}
有人可以向我的 jar 头解释一下吗?
最佳答案
在Java中,编译的单位是类,因此类很可能在不同的时间编译,例如由于类位于不同的库中而独立开发。考虑:
class A {}
那就找别人吧
class B {}
现在,A 的制造者决定扩展 B:
class A extends B {}
B 的制作者决定扩展 A,但不知道之前的更改,即仍然具有 A 的原始定义:
class B extends A{}
后来,他们意识到 A 的新版本可用,并将其放入类路径中,导致加载时出现 ClassCircularityError。
关于Java ClassCircularityError ,运行时还是编译时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765372/
我是一名优秀的程序员,十分优秀!