gpt4 book ai didi

java - 为什么我可以在链接方法时省略 import 语句,但如果我单独调用它们则不能?

转载 作者:行者123 更新时间:2023-11-29 02:58:50 24 4
gpt4 key购买 nike

例如,在这个简单的 Java 程序中:

  1. 如果我写:

frame.getContentPane().add(button);

我只需要 import javax.swing.*;并且代码可以完美编译。

  1. 但是,如果我写:

Container cont = frame.getContentPane();
cont.add(button);

我必须import javax.swing.*;import java.awt.*;因为没有 cannot find symbol编译器错误。

这两种写法在技术上不是完全一样的吗?为什么需要更少或更多的导入语句?

当我以示例中的第一种方式调用它时,getContentPane() 是否仍会返回 Container 类型对象,即使我可能没有使用 Container 引用变量来引用它?

最佳答案

来自 Java 语言规范:

An import declaration allows a named type or a static member to be referred to by a simple name (§6.2) that consists of a single identifier.

Without the use of an appropriate import declaration, the only way to refer to a type declared in another package, or a static member of another type, is to use a fully qualified name (§6.7).

所以您需要import 的唯一原因是您可以使用“缩短的”类名。以下内容无需使用 import java.awt.* 即可工作:

java.awt.Container cont = frame.getContentPane();
cont.add(button);

代码的“链接”版本隐式使用限定的类名,因此不需要 import 语句。

关于java - 为什么我可以在链接方法时省略 import 语句,但如果我单独调用它们则不能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36493195/

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