我正在尝试单独编译Java,特别是编译一个没有所依赖的所有类/接口的类。
例如,假设我有以下文件Foo.java:
public class Foo extends Bar{
//class body
}
但是没有Bar的java / class文件。我正在寻找允许我单独编译Foo.java的工具,并在稍后阶段添加它的依赖项。
关于如何做的任何事情都有助于从有关该主题的论文以及如何/不能对现有的工作工具/框架做出这样做。
答案 0 :(得分:0)
无法完成,因为永远不应该有未经验证的字节码。
然而,人们可以通过一些语法工具进行语法验证。
可以绕过实际的实现类来编译接口。
在java 9中,出现了交互式shell JShell ,REPL
,它允许隔离创建声明和语句;部分代码。
令人怀疑的是,其中一个是你正在寻找的。 也许切换到JavaScript的下层区域。
答案 1 :(得分:-1)
通常在java中如果使用反射api进行编码,那么只有ur代码可以独立构建,因为所有分辨率都是在运行时完成的。 Class.forName并不要求在编译期间出现类。但这意味着你将不得不以一种非常复杂的方式重写类的简单代码,这在尝试定义一个简单的POJO类时有时会产生开销。在这个例子中的情况。解释整个场景或要求这样做,因为这可能有助于其他人建议别的东西,因为有时候看大图有帮助