Предполагая, что у меня есть следующий класс, который определяет один static
служебный метод:
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();
}
}
}
Затем я могу создать класс (расположенный в том же пакете, что и Utility
), который использует этот метод:
public class Test {
public static void main(String[] args) throws Exception {
var channel = Utility.getChannel();
System.out.println(channel);
channel.close();
}
}
Однако, Test
, похоже, не требует каких-либо операторов импорта, даже если он использует AsynchronousSocketChannel
локально. Если бы я вместо этого набрал AsynchronousSocketChannel channel = ...;
, тогда, очевидно, потребовались бы операторы импорта.
Верно ли мое предположение о том, что операторы импорта выводят во время компиляции (при использовании логического вывода типов) правильно?