麻烦问一个 Java 的基本原理问题

2019-10-14 12:41:40 +08:00
 rizon

就是如果我的代码在第 10 行调用了 ModelX 的一个方法, 然后这个代码作为一个模块被另一个代码引用,但是另一个代码排除了 ModelX, 那么第 10 行的这个代码肯定是错误的,但是只要我不会执行到这一行代码,那么程序就可以正常运行,是这样的吧?

代码运行的时候只有在实际被执行到的时候才会报错?

另一个问题是,我们正常编译代码的时候由于会检查,如果有错误代码就会报错而无法正常编译。那么我怎么才能忽略错误正常编译运行?在 javac 和 idea 中怎么指定忽略错误?

其实这也不算问题了,因为我也基本知道了,之所以还会多此一举的问一下,就是看看大家会说些什么,也许就会说到一些我不知道的东西哈。有点类似抛砖引玉吧 哈哈

1895 次点击
所在节点    程序员
5 条回复
zazalu
2019-10-14 12:45:26 +08:00
排除了 ModelX=报错?
ycs2019
2019-10-14 12:49:01 +08:00
jimrok
2019-10-14 13:23:34 +08:00
首先,在编译阶段,这样的代码是无法编译的,因为找不到 ModelX。第二,如果你编译后移除 ModelX 的.class 文件,那么在运行期会抛出 ClassNotFound 这种错误,因为 Classloader 载入不了这个类。
airfling
2019-10-14 13:40:39 +08:00
你这段代码单独做个模块,然后 modalX 也是单独一个模块,依赖采用 provide,各自分别打包就可以了
chendy
2019-10-14 13:48:52 +08:00
编译是不行的,IDE 有时候可以带错运行是因为增量编译,报错的东西没有重新编译出来
运行的时候,因为一般除了核心类,其他的类都是用到了再加载,所以除非运行到那段代码报了 ClassNotFound,否则不会报错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/609113

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX