Java导入语句不在文件开头

enr*_*cis 3 java syntax import

在python中,可以将import语句放置在文件中的任何位置,甚至可以放置在if中

有没有办法在Java中完成相同的工作?我知道,不将所有导入都放在文件顶部可能是一个不好的做法,我只是想知道是否可以某种方式实现。

Stu*_*ske 5

Java文件中的第一个语句必须是package语句(如果有),然后是import语句。

不能将它们放置在其他位置。

但是,可以使用其他方式(我个人不建议这样做)

import myPackage.MyClass;

public class Test{
  private MyClass instance = new MyClass();
}
Run Code Online (Sandbox Code Playgroud)

可以重写为:

public class Test{
  private myPackage.MyClass instance = new myPackage.MyClass();
}
Run Code Online (Sandbox Code Playgroud)

不再需要import语句(如果需要在一个Java文件中使用两个具有相同名称的类,这将很方便),但是您将整个路径放置到该类中,包括将包包装在变量的声明/初始化中。

这样,它们可以在代码中的任何位置。


enr*_*cis 3

根据这里的文档:

要将特定成员导入到当前文件中,请将 import 语句放在文件开头的任何类型定义之前,但在 package 语句之后(如果有)。

所以看来是不可能的。