Java 调整返回真/假的方法
在调整C风格函数时,最好的做法是什么?C风格函数向Java返回真/假 这里有一个简单的方法来说明问题所在Java 调整返回真/假的方法,java,methods,boolean,Java,Methods,Boolean,在调整C风格函数时,最好的做法是什么?C风格函数向Java返回真/假 这里有一个简单的方法来说明问题所在 public static boolean fileNameEndsWithExtension( String filename, String fileExtension) { return filename.endsWith( fileExtension ); } 请注意,可能有一种更优雅的过滤文件的方法(请随意评论)。无论如何,如果文件名为null值,是否有: 如果文件名
public static boolean fileNameEndsWithExtension( String filename, String fileExtension) {
return filename.endsWith( fileExtension );
}
请注意,可能有一种更优雅的过滤文件的方法(请随意评论)。无论如何,如果文件名为null
值,是否有:
null
和字符串或文件名不以给定文件扩展名结尾的情况
null
值的包装类布尔值异常
并强制程序员确保null
值从未传递给该方法您可以在特定应用程序的问题域中执行有意义的操作:
大多数情况下,选项3是合理的,但这里没有人可以排除其他选项对您的应用程序的适用性。如果您传递了大量有意义的空文件名,那么从其他文件名中选择一个可能是有意义的。如果文件名为空,您应该抛出NullPointerException或IllegalArgumentException。我会让你决定哪一个最好。关于在这个问题中使用哪一个有很好的争论:我会使用1或3。我最好抛出NullPointerException,或者至少使用一个 返回可为null的布尔值通常会带来更多的麻烦,您需要检查是否存在null值等。除了
filenameendswixtension()
看起来像是一个函数,只有当您知道自己有一个有效的文件名时,您才会使用它
另外,不要忘记fileExtension
也可能是空值
select * from filenames
where filename like '&fileExtension';
请参阅以获取可能的选项(4)+1,当然,如果您保持原样,您将已经获得一个适当的
NullPointerException
;我可能不会再费心了。选项1和2非常可怕,因为它们会将错误推迟到稍后的某个时间点,在这一点上可能更难调试。关于NPE与IAE:我建议使用NPE,因为它在标准库中被广泛使用,用来表示参数非法null
。Java7甚至将引入Java.util.Objects
,它将有一个用于单行反空检查和赋值的实用方法(如果参数为null,则给出一个NPE)。NPE已经成为一种简单的方法。相关RFE:很高兴听到这个消息。这将节省一个实用方法来检查空值的时间。我理解这个推理,因为我以前已经习惯了。顺便说一句,带有JQL/JPA/Hibernate的getResult()也会返回空值(通常分配给列表)。