V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rizon
V2EX  ›  程序员

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

  •  
  •   rizon ·
    othorizon · 2019-10-14 12:41:40 +08:00 · 1758 次点击
    这是一个创建于 1627 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    5 条回复    2019-10-14 13:48:52 +08:00
    zazalu
        1
    zazalu  
       2019-10-14 12:45:26 +08:00
    排除了 ModelX=报错?
    ycs2019
        2
    ycs2019  
       2019-10-14 12:49:01 +08:00
    jimrok
        3
    jimrok  
       2019-10-14 13:23:34 +08:00   ❤️ 2
    首先,在编译阶段,这样的代码是无法编译的,因为找不到 ModelX。第二,如果你编译后移除 ModelX 的.class 文件,那么在运行期会抛出 ClassNotFound 这种错误,因为 Classloader 载入不了这个类。
    airfling
        4
    airfling  
       2019-10-14 13:40:39 +08:00
    你这段代码单独做个模块,然后 modalX 也是单独一个模块,依赖采用 provide,各自分别打包就可以了
    chendy
        5
    chendy  
       2019-10-14 13:48:52 +08:00
    编译是不行的,IDE 有时候可以带错运行是因为增量编译,报错的东西没有重新编译出来
    运行的时候,因为一般除了核心类,其他的类都是用到了再加载,所以除非运行到那段代码报了 ClassNotFound,否则不会报错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5439 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:08 · PVG 17:08 · LAX 02:08 · JFK 05:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.