相关疑难解决方法(0)

为什么不声明一个数组最终使它在Java中不可变?

为什么不声明一个数组最终使它在Java中不可变?不宣称最终意味着它无法改变?

与不可变数组相关的问题中可以清楚地看出,声明一个数组final并不会使它不可更改.

以下是可能的.

final int[] array = new int[] {0, 1, 2, 3};
array[0] = 42;
Run Code Online (Sandbox Code Playgroud)

我的问题是:那么在这里宣布决赛的功能是什么?

java final immutability

15
推荐指数
2
解决办法
9653
查看次数

最终字符串的最终数组是否仍然可变?

假设我有一个数组

public static final String[] fooArray ={ Foo.a, Foo.b, Foo.c };
Run Code Online (Sandbox Code Playgroud)

其中Foo.ab和c是静态最终字符串.

我仍然可以做这样的事情fooArray[0] = "taco";,并最终{ taco, Foo.b, Foo.c }为fooArray的内容是什么?

如果是这样,是否会将数组设为私有,并使用getter来生成数组的副本以Arrays.copyOf解决此问题?

java arrays string final

0
推荐指数
1
解决办法
451
查看次数

在java main方法参数中添加final关键字不会产生任何编译错误/异常?

在main方法参数中添加final关键字可以正常工作.为什么它没有给出任何编译器错误/异常,因为我修改了java的标准main方法.

 public class StackOverFlow {

    public static void main(final String... args) {
        System.out.println("Hi");

    }
}
Run Code Online (Sandbox Code Playgroud)

现在看看我是否编码:

public class StackOverFlow {

    public static void main (String... args) {

        String[] str = {"I ", "haven't ", "received ", "my ", "answer." };
        args[0] = "hi";
        System.out.println(args[0]);
        args =str;
        for(int i=0; i<args.length; i++) {
            System.out.print(args[i]);
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

对于上面的编码,当您通过传递参数来运行程序时

javac StackOverFlow Nisrin

我的程序输出是

我没有收到我的答复.

与final关键字同样如此

public class StackOverFlow {

    public static void main (final String... args) {

        String[] str = {"I ", …
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
86
查看次数

标签 统计

java ×3

final ×2

arrays ×1

immutability ×1

string ×1