当我1年前开始学习Java时。作为一个 C 背景的人,我发现 Java 中的很多东西都是严格的,比如由于无限循环而无法到达的语句等等。
那么,变量声明final String mainViewPaths[]={};
有什么用处吗?我们可以用这个空数组引用做什么?我们甚至无法重用该变量,因为它被标记为final
。它不会导致任何编译器错误。我问这个问题是因为我认为 Java 开发人员将所有可能无用或误导的内容放在一边。
最佳答案
像 mainViewPaths
变量这样的空数组可以用作 Null Object 。
In object-oriented computer programming, a Null Object is an object with defined neutral ("null") behavior.
想象一下这个场景:
有些变量是通过引用
mainViewPaths
变量来初始化的,例如String loginViewPaths[] = mainViewPaths; String homeViewPaths[] = mainViewPaths;
源代码中有很多地方可以访问 ViewPaths 变量,例如:
public String toString() { return mainViewPaths.toString(); } for(int i = 0; i < mainViewPaths.length; i++) { // iterate over all the mainViewPaths elements }
如果
mainViewPaths
变量不是用空数组初始化的,而是简单地用null
初始化的,那么在上面的代码中,在访问 mainViewPaths 变量之前应该有一个检查mainViewPaths
变量是否为 null,因此代码应如下所示:public String toString() { return mainViewPaths != null ? mainViewPaths.toString() : null; } for(int i = 0; i < mainViewPaths == null ? 0 : mainViewPaths.length; i++) { // iterate over all the mainViewPaths elements }
因此,拥有像
mainViewPaths
变量这样的Null 对象
可以节省大量样板代码。
关于java - Final String mainViewPaths[]={}; 有什么用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16969576/