1年前开始学习Java时。从C的背景出发,我发现Java中有很多严格的规定,例如由于无限循环而导致的不可达语句等。

那么,变量声明final String mainViewPaths[]={};有什么用?空数组引用可以做什么?由于标记为final,因此我们甚至无法重复使用该变量。它不会导致任何编译器错误。我之所以这样问,是因为我认为Java开发人员会将所有可能无用或误导的东西放在一边。

最佳答案

mainViewPaths变量这样的空数组可以用作Null Object


  在面向对象的计算机编程中,空对象是具有定义的中性(“空”)行为的对象。


想象一下这种情况:


有些变量是通过引用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
}

因此,像Null Object变量这样的mainViewPaths可以节省很多样板代码。

关于java - 最终的String mainViewPaths [] = {};是否有任何用途?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16969576/

10-10 16:54