Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 静态错误:此类没有接受字符串[]的静态void main方法_Java_String_Syntax_Integer - Fatal编程技术网

Java 静态错误:此类没有接受字符串[]的静态void main方法

Java 静态错误:此类没有接受字符串[]的静态void main方法,java,string,syntax,integer,Java,String,Syntax,Integer,因为我希望用户输入数字,而不是我使用的字符串 public static void main(Integer[] args) 那么,为什么这是错误的呢 您需要接受字符串数组,并在运行时将字符串转换为整数。按照它的工作方式…您需要接受字符串数组,并在运行时将字符串转换为整数。就其工作方式而言……您只能为您的主方法设置一个字符串[]数组(除非您重载它,但我们暂时不讨论细节:-D) 但是,您可以使用以下命令将字符串[]args的每个元素更改为int public static void main(S

因为我希望用户输入数字,而不是我使用的字符串

public static void main(Integer[] args)

那么,为什么这是错误的呢

您需要接受字符串数组,并在运行时将字符串转换为整数。按照它的工作方式…

您需要接受字符串数组,并在运行时将字符串转换为整数。就其工作方式而言……

您只能为您的主方法设置一个字符串[]数组(除非您重载它,但我们暂时不讨论细节:-D)

但是,您可以使用以下命令将字符串[]args的每个元素更改为int

public static void main(String[] args)
{
 int[] values = new int[args.length];
 for (String arg : args)
 {
  //Get or do something with the integer value here
 }
}
这是因为底层平台只知道如何向程序传递字符串。打开命令提示符或终端并执行以下操作时:

>java MyClass 3 4 5


它不知道你想把[“3”,“4”,“5”]当作整数来处理。它将字符串的处理留给程序来完成。

您只能为您的主方法设置一个字符串[]数组(除非您重载了它,但我们暂时不讨论细节:-D)

但是,您可以使用以下命令将字符串[]args的每个元素更改为int

public static void main(String[] args)
{
 int[] values = new int[args.length];
 for (String arg : args)
 {
  //Get or do something with the integer value here
 }
}
这是因为底层平台只知道如何向程序传递字符串。打开命令提示符或终端并执行以下操作时:

>java MyClass 3 4 5


它不知道你想把[“3”,“4”,“5”]当作整数来处理。它让程序处理字符串。

主方法上的签名必须是:

public static void main(String[] args)

你别无选择。如果需要,您可以通过
Integer.parseInt(someString)

将这些字符串解析为整数。主方法上的签名必须是:

public static void main(String[] args)

你别无选择。如果需要,您可以通过
Integer将这些字符串解析为整数。parseInt(someString)

Main是特殊的,因为它必须存在才能启动程序,因此需要有固定的签名。在后台,java运行时寻找启动程序的神奇签名。神奇的签名是

public static void main(String[] args)
如果你想得到整数,你需要在事实发生后使用

Integer.parseInt( x );

Main是特殊的,因为它必须出现才能启动程序,所以需要有一个固定的签名。在后台,java运行时寻找启动程序的神奇签名。神奇的签名是

public static void main(String[] args)
如果你想得到整数,你需要在事实发生后使用

Integer.parseInt( x );

当JVM加载类并尝试执行它时,它会查找带有签名的方法main()

public static void main (String[] args) ...
其他任何东西都是不可接受的。如果需要整数,请使用Integer.parseInt()方法将输入字符串转换为整数,如Zach所述。我将该转换放在一个try-catch块中,以捕获NumberFormatException,并有一个

System.err.println ("This class accepts Integer arguments only"); 

在相应的catch块中。关于,-M.S.

当JVM加载类并尝试执行它时,它会查找带有签名的方法main()

public static void main (String[] args) ...
其他任何东西都是不可接受的。如果需要整数,请使用Integer.parseInt()方法将输入字符串转换为整数,如Zach所述。我将该转换放在一个try-catch块中,以捕获NumberFormatException,并有一个

System.err.println ("This class accepts Integer arguments only"); 

在相应的catch块中。关于-M.S.

main的方法签名始终是(字符串[]args)。如果要获取整数,则必须使用下面的代码段将args[]转换为int

  int aInt = Integer.parseInt(args[0]);

main的方法签名始终为(字符串[]args)。如果要获取整数,则必须使用下面的代码段将args[]转换为int

  int aInt = Integer.parseInt(args[0]);

应该是
Integer.parseInt(..)
。应该是
Integer.parseInt(..)