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

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

Java中與程序包相對的標識符路徑

Java中與程序包相對的標識符路徑

函數式編程 2021-04-30 14:37:18
介紹從C ++開始,最大的區別之一是作用域的不同:在C ++中,每個標識符都相對于當前范圍(class或namespace),您可以::在開始時使用范圍解析運算符編寫一個絕對路徑。但是,在Java中,如果不將標識符導入當前作用域或編寫其完整路徑,就無法找到從其他包訪問標識符的方法。如果我有幾個同名的類,那么這可能是一個問題(然后,在C ++中,我將它們分別命名為Module1 :: Foo和Module2 :: Foo,這在Java中是不可能的,只要我想保持理智即可。因為com.company.project.module1.Foo對于我的品味來說太長了)。代碼!這是一個Tools.Useless.Foo從Java和C ++訪問類的示例(不帶import或using)Tools/Useless/Foo.hpp:namespace Tools {namespace Useless {class Foo {         };}}Tools/Bar.hppnamespace Tools {...// Use Foo with a relative identifierUseless::Foo foo;// Use Foo with an absolute identifier.::Tools::Useless::Foo bar;...} 這就是在Java中的樣子:com/company/project/Tools/Useless/Foo.java:package com.company.project.Tools.Useless;public class Foo { }com/company/project/Tools/Bar.java:...// Use Foo with a relative identifier???// Use Foo with an absolute identifier.com.company.project.Tools.Useless.Foo foo;...問題有沒有一種方法可以Foo從軟件包中訪問Tools.Useless而無需指定Tools.Useless完整的軟件包名稱(并導入它;因為導入會將其綁定到當前作用域)?我做對了嗎?我應該如何使用幾個同名的類?我應該避免這種情況,還是只使用“ package。*”將其導入以繞過它?解決方案使用更多的包描述類名(例如ToolsUselessFoo而不是Foo)。使用import path.to.module.*而不是導入所有內容,import path.to.module.Foo然后訪問Foo所需的軟件包以解決任何歧義。問題在于有時包名稱具有含義(例如Tools.Useless.Foo和Tools.Useful.Foo)。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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