在Java文檔中我發現包的命名約定應該是這樣的:包名全部小寫,以避免與類或接口的名稱沖突。但我在 Java 和 Android 中看到過很多類,如下所示:import java.util.HashMap;import androidx.core.content.ContextCompat;import android.view.inputmethod.InputMethodManager;這里的標準是什么?這些例子是否偏離了慣例?
4 回答

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊
那是因為
import java.util.HashMap;
Hashmap
指的是類,而不是包。
其內容如下:
Hashmap
是在包中找到的類java.util
這是有問題的實際包和類:

FFIVE
TA貢獻1797條經驗 獲得超6個贊
導入語句由兩部分組成,包名稱和駐留在包中的實際類。例如,您的import
:
import java.util.HashMap;
實際上是說導入HashMap
駐留在java.util
包中的類。事實上,包名確實只由小寫字母組成。但是,該類采用大駝峰式,這也是慣例。

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
你很困惑
import some.package.with.WhatEverClass
和
import some.package.with.*
換句話說:使用大寫字母是因為 import 語句的最后一部分引用的是類,而不是包。
這與您在 python 中可以執行的操作類似:
import re
將導入整個模塊,而第一個 java 示例更像是
from foo import bar

ibeautiful
TA貢獻1993條經驗 獲得超6個贊
你是對的,java中的包名都是小寫的。然而,所討論的例子是重要的而不是包。類中的包HashMap
就像這個包java.util;
并且java.util.HashMap
是完全限定的類名。導入時使用完全限定的類名(帶包的類名)。
添加回答
舉報
0/150
提交
取消