亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 10,Intellij 警告(類未導出,在同一模塊中訪問)

Java 10,Intellij 警告(類未導出,在同一模塊中訪問)

素胚勾勒不出你 2022-06-23 20:05:07
我正在嘗試在我的一個項目中將 Java 10 與 intellij 一起使用,但遇到了警告。這是說我沒有導出類服務器。如果您看到我的包結構,我的包內有服務器,network我的模塊信息文件如下所示module core {    requires com.google.guice;    requires io.netty.all;    requires config;    requires org.apache.logging.log4j;    exports com.money.heist.server.core;    opens com.money.heist.server.core.network to com.google.guice;}我故意不導出包網絡,因為我不想這樣做,但我想在父包內的網絡包內使用類。他們在這里有什么好的/壞的做法,還是只是intelliJ發瘋了?
查看完整描述

1 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

如果您將警告消息展開,您會發現其背后的原因

除此之外,在 Java 9 中,一個模塊可能會通過不導出它們的包來隱藏它的一些類。

如果導出包中的類的公共 API 引用非導出包中的類,則此類 API 在模塊之外沒有用處。

這樣的 API 沒有用的原因是沒有其他模塊可以實例化/訪問Server類。

值得注意的是,在您的模塊描述符中,您已包含

opens com.money.heist.server.core.network to com.google.guice;

這將在運行時提供對包中的publicand類型的訪問,而不是編譯時(可能是 IntelliJ 無法感知它的原因),以及這些類型的and成員對它們打開的模塊的訪問。protectedpublicprotected

與上述相關,如果您將opens指令更改為exports,您將不會進一步看到來自 IntelliJ 的警告。


查看完整回答
反對 回復 2022-06-23
  • 1 回答
  • 0 關注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號