Java 为什么编译器会给出这个异常

Java 为什么编译器会给出这个异常,java,guava,Java,Guava,我想检查文件是否存在。为此,我将dpreconditions.checkArgument方法与File.exists方法一起使用。然而,编译器给出了IllegalArgumentException。为什么编译器会给出这个异常 File fileIn = new File(filename); Preconditions.checkArgument( fileIn.exists() != false ); 这不是编译器,而是checkArgument方法本身。 在文档中,它说如果表达式为fal

我想检查文件是否存在。为此,我将dpreconditions.checkArgument方法与File.exists方法一起使用。然而,编译器给出了IllegalArgumentException。为什么编译器会给出这个异常

File fileIn = new File(filename); 
Preconditions.checkArgument( fileIn.exists() != false );

这不是编译器,而是checkArgument方法本身。 在文档中,它说如果表达式为false,它应该抛出IllegalArgumentException


因此您的文件不存在

首先,需要注意几件事。首先,编译器不会给出异常,它们会给出编译错误—您遇到的是运行时,而不是编译时。第二,fileIn.exists!=false相当于fileIn.exists,更易于阅读


您收到的实际问题是因为您的条件为false,这意味着在您的情况下该文件不存在。除非您发布更多的代码,否则我们无法在这方面提供更多帮助,但这是不言自明的。请参阅有关checkArgument方法的文档

很可能是由错误的文件名引起的,但是我们无法知道,除非您发布更多代码。没有更多代码,只有它们。我在方法中所拥有的一切都是给定的。那么文件名是从哪里来的呢?