在java主方法参数中添加最后一个关键字不会';我没有给出任何编译错误/异常?
在主方法参数中添加最后一个关键字可以正常工作。为什么它没有给出任何编译器错误/异常,因为我已经修改了java的标准main方法在java主方法参数中添加最后一个关键字不会';我没有给出任何编译错误/异常?,java,Java,在主方法参数中添加最后一个关键字可以正常工作。为什么它没有给出任何编译器错误/异常,因为我已经修改了java的标准main方法 public class StackOverFlow { public static void main(final String... args) { System.out.println("Hi"); } } 现在看看我的代码: public class StackOverFlow { public static v
public class StackOverFlow {
public static void main(final String... args) {
System.out.println("Hi");
}
}
现在看看我的代码:
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]);
}
}
}
公共类堆栈溢出{
公共静态void main(字符串…参数){
String[]str={“我”、“还没有”、“收到”、“我的”、“答案”。};
args[0]=“高”;
System.out.println(args[0]);
args=str;
对于(int i=0;ifinal
将引用标记为常量,它实际上不会更改类型。还要注意,更改main
的签名是从不编译器错误,但它经常会导致运行时错误。final
将引用标记为常量,它实际上不会更改。)他输入。还要注意,更改main
的签名是从不编译器错误,但它经常会导致运行时错误。final
只告诉“引用是一个常量,不要试图更改它”。这意味着到目前为止,main
方法可以正确使用它。args
参数通常用于从execute命令获取信息。您可能再也没有任何理由在程序中更改它的值。final
只告诉“引用是一个常量,不要尝试更改它”。这意味着到目前为止,main
方法可以正确使用它。args
参数通常用于从execute命令获取信息。您可能再也没有任何理由在程序中更改它的值了。您能解释一下“它经常导致运行时错误”的含义吗我的意思是,如果您将main
的签名更改为不再是入口点,代码仍将编译。您将无法运行它。因此,这是一个运行时错误(不是编译器错误).好的,那么你的意思是它不再是JRE可以用来运行程序的主要方法了。请注意检查我修改过的问题并进行指导。你能解释一下“它经常导致运行时错误”是什么意思吗我的意思是,如果您将main
的签名更改为不再是入口点,代码仍将编译。您将无法运行它。因此,这是一个运行时错误(不是编译器错误)。好的,那么你的意思是,它不再是JRE可以用来运行程序的主要方法。请注意检查我修改过的问题,并请指导。@Andreas好的,我确实理解args是一个对象字符串数组,所以它是final/常量,但它不会使其中的每个元素都是常量。但我的问题是我我正在更改主方法的签名。添加final
后仍然可以运行程序的事实表明您没有更改签名。签名由方法名称和参数类型决定。参数修饰符(final
和注释)没关系。@Andreas好的,我知道args是一个对象字符串数组,所以它是final/常量,但它不会使其中的每个元素都是常量。但我的问题是我正在更改main方法的签名。添加final
后仍然可以运行程序,这表明您没有更改签名。Th签名由方法名和参数类型决定。参数修饰符(final
和注释)无关紧要。
public class StackOverFlow {
public static void main (final 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]);
}
}
}