当前位置: 首页 > 知识库问答 >
问题:

局部类型推断不需要某些导入语句吗?

丁嘉庆
2023-03-14
import java.io.IOException;
import java.nio.channels.AsynchronousSocketChannel;

public class Utility {
    public static AsynchronousSocketChannel getChannel() {
        try {
            return AsynchronousSocketChannel.open();
        } catch (IOException e) {
            throw new IllegalStateException();
        }
    }
}
public class Test {
    public static void main(String[] args) throws Exception {
        var channel = Utility.getChannel();
        System.out.println(channel);
        channel.close();
    }
}

共有1个答案

裴甫
2023-03-14

import语句是纯粹的语法构造;它们只允许您引用一个typename而不需要编写它的完整包名。

特别是,它们与装载任何东西无关。

如果从未在代码中显式使用typename,则不需要导入。

 类似资料:
  • 主要内容:Java10 局部变量类型推断,声明局部变量的旧用法,声明局部变量的新用法,需要注意的事项,Java10 局部变量类型推断的示例Java10 局部变量类型推断 局部变量类型推断是 Java 10 以后可用语言最明显的变化之一。它允许使用 var 定义变量而不指定它的类型。编译器使用提供的值推断变量的类型。这种类型推断仅限于局部变量。 声明局部变量的旧用法 声明局部变量的新用法 需要注意的事项 在成员变量、方法参数、返回值的情况下没有类型推断。 局部变量应在声明时初始化,否则编译器将无法

  • 在Java10中,我们可以使用类型推断。

  • 我安装了JDK 10以试用新特性,但我对感到很困扰--出于某种原因,即使JDK被添加到IntelliJ(版本2018.1)中,以下代码仍然无法编译,说Java找不到: 我是不是遗漏了一些显而易见的东西,或者我应该启用IntelliJ中的一个选项? 编辑:项目和模块SDK和语言级别都设置为Java10安装和LVL。10(但不是级别)。

  • 此代码只是使用中间的来删除重复项,其中元素之间的相等性是根据提供的比较器定义的。 让我们给局部类型推断一个机会吧,我(天真地)想...于是我将上面的代码改为: 这对我来说是有意义的,因为的类型可以从的类型推断出来,或者我是这么想的。但是,修改后的代码无法编译,并生成以下错误: 注意1:编译代码的一种方法是将返回类型更改为。不过,那是一套很难用的... 注意2:另一种方法是在比较器中不使用逆变,但我

  • 问题内容: 为了避免锁定,在对表进行进一步操作之前需要提交的语句列表有哪些?我不是在谈论具有多个语句和交易完整性的完整交易;相反,我指的是单个语句。 我知道插入应该被提交,但是截断具有自动提交。需要提交的完整语句清单是什么? 需要提交(入门列表): 问题答案: 需要提交/回退DML(数据操作语言)命令。这是这些命令的列表。 数据操作语言(DML)语句用于管理架构对象中的数据。一些例子:

  • null 这是有意义的,但是在编译时的类型是什么?它是还是其他东西?