猿问

Java 包名称验证

在Java文档中我发现包的命名约定应该是这样的:


包名全部小写,以避免与类或接口的名称冲突。


但我在 Java 和 Android 中看到过很多类,如下所示:


import java.util.HashMap;

import androidx.core.content.ContextCompat;

import android.view.inputmethod.InputMethodManager;

这里的标准是什么?这些例子是否偏离了惯例?


慕标琳琳
浏览 149回答 4
4回答

有只小跳蛙

那是因为import java.util.HashMap;Hashmap指的是类,而不是包。其内容如下:Hashmap是在包中找到的类java.util这是有问题的实际包和类:

FFIVE

导入语句由两部分组成,包名称和驻留在包中的实际类。例如,您的import:import java.util.HashMap;实际上是说导入HashMap驻留在java.util包中的类。事实上,包名确实只由小写字母组成。但是,该类采用大驼峰式,这也是惯例。

吃鸡游戏

你很困惑import some.package.with.WhatEverClass和import some.package.with.*换句话说:使用大写字母是因为 import 语句的最后一部分引用的是类,而不是包。这与您在 python 中可以执行的操作类似:import re将导入整个模块,而第一个 java 示例更像是from foo import bar

ibeautiful

你是对的,java中的包名都是小写的。然而,所讨论的例子是重要的而不是包。类中的包HashMap就像这个包java.util;并且java.util.HashMap是完全限定的类名。导入时使用完全限定的类名(带包的类名)。
随时随地看视频慕课网APP

相关分类

Java
我要回答