如何在不使用import语句的情况下使用Java标准库的Scanner类?
不用import语句调用Java Scanner类的简单方案
嘿,别折腾解编译标准库啦!这个问题其实有个超简单的解决办法——Java本身就支持直接用全限定类名来调用标准库类,完全不需要写import语句,刚好命中你教授的要求。
核心原理
Scanner类的完整路径是java.util.Scanner,只要在代码里直接用这个完整名称代替单独的Scanner,编译器就能准确找到这个类,根本不用提前import。
完整代码示例
下面是满足要求的可运行代码:
public class UserInputWithoutImport { public static void main(String[] args) { // 直接用全限定类名实例化Scanner java.util.Scanner inputScanner = new java.util.Scanner(System.in); System.out.print("Enter an integer: "); int userInt = inputScanner.nextInt(); System.out.println("You entered: " + userInt); inputScanner.close(); } }
额外简化技巧(Java 10+)
如果你的环境支持Java 10及以上,可以用var来简化变量声明,少写一遍长类名:
public class UserInputWithoutImport { public static void main(String[] args) { var inputScanner = new java.util.Scanner(System.in); System.out.print("Enter an integer: "); int userInt = inputScanner.nextInt(); System.out.println("You entered: " + userInt); inputScanner.close(); } }
这里var会自动推断变量类型,右边还是得用全限定类名来创建对象,同样不需要import。
为什么不用解编译?
解编译标准库不仅麻烦,而且完全没必要——Java的包机制本来就支持这种全限定名的直接引用,这是语言设计时就考虑到的场景,专门用来处理不能(或不想)写import的情况。
内容的提问来源于stack exchange,提问作者DeSync
相关产品推荐
相关产品推荐

