gpt4 book ai didi

java - "import foo.*"不应该也包括子包 "foo.bar.*"吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:30 26 4
gpt4 key购买 nike

在学习 Java 时,我想到了许多教程中的一个对我来说相当令人困惑的特性。考虑示例教程中的以下两个导入:

import java.awt.*;
import java.awt.event.*;

第一行显然导入了java.awt包,第二行导入了awt的子包。 但是 asterix 不应该包含所有子包吗?因此,第一行应该可以解决问题 - 不需要第二行吗?如果不是:那么星号的真正用途/用途是什么?

例如,在 MySQL 中使用 SELECT * FROM foo 从表中选择所有字段,也许我愚蠢地认为这自然是这种情况。

最佳答案

不,包是作为一个整体。尽管按层次结构考虑它们通常很有用,但在 Java 语言或编译中没有任何概念说 java.awt.event belongs to java.awt

您与 SQL 表的比较不太正确,因为 SQL 数据库中没有子表这样的东西。相反,假设您有一个代表所有类的表,其中包含以下条目:

ID | Package   | Name
--------------------------
1 | awt | SomeClassName1
2 | awt.event | SomeClassName2

现在,如果你想获得 awt 类(class),你会说:

SELECT * FROM MyTable WHERE Package = 'awt'

您不会期望这会给您两个条目,只是因为包名称​​以 awt 开头,对吗?

关于java - "import foo.*"不应该也包括子包 "foo.bar.*"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com