正在更改主参数类型



我目前正在Eclipse中进行一个学校项目(我们刚刚开始使用它),我们遇到了一个小问题:因为我们以前使用过BlueJ,所以我们没有任何主方法,我们添加了一个,但遇到了问题。

我们必须在参数中发送Int值,而不是带有args的String[],我们尝试过公共静态void main(Int[]args)这会导致以下错误:

错误:在类Tester中找不到Main方法,请定义Main方法为:public static void main(String[]args)

我想知道我们应该做些什么/改变一下才能让它发挥作用。

了解Integer.parseInt("123")
看见http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String,%20int%29

我希望你能弄清楚剩下的:)

Java将查找public static void main(String[] args)
您必须将整数值作为字符串传递并对其进行解析

这是指向Integer.parseInt(String)文档的链接。

正如其他人所说,您不能更改main方法的签名。要从String参数中获得整数,请使用:

public static void main(String[] args) {
    int first = Integer.parseInt(args[0]); // use whatever index you need
}

正如错误所说,执行类时将调用的主方法必须具有签名public static void main(String[] args)。你不能只是给它不同的论点。

如果在命令行上将数字作为参数传递,Java将以字符串的形式读取它们。如果要将它们转换为数字类型,则必须在代码中明确执行此操作。

尝试在String数组中发送整数。

new String[]{"1"}

然后取回:

Integer yourInteger = Integer.valueOf(args[0])

您需要将值作为String传递,然后将其解析为Integer。

看看这个代码示例:

public static void main(String[] args) throws Exception {
    int value = Integer.parseInt(args[0]);
    System.out.println("My int value: " + value);
}

如果参数不可解析,则需要使用try-catch来保护parseInt以进行错误管理。

只需传入一个字符串,然后使用Integer.parseInt(string)获取所需的整数。

编写如下的主方法

public static void main(String[] args){

}

并使用Integer.parseInt(str)

您必须将主方法保留如下:

public static void main(String[] args){
    //....
}

正如您指出的错误。现在,在main方法中可以将参数的类型更改为整数。

public static void main(String[] args){
    int arg0=Integer.parseInt(args[0]);
    int arg1=Integer.parseInt(args[1]);
    //... etc.
}

问候!

此类将打印出您在命令行中输入的整数:

public class IntegersFromCommandLine
{
    public static void main(String[] args)
    {
        for (int i = 0; i < args.length; i++)
        {
            System.out.println(Integer.parseInt(args[i]));
        }
    }
}

如果您给它命令行参数1324 21 458 9564 1 0-789 40,它将给出以下输出:

1324
21
458
9564
1
0
-789
40

不能更改主方法的签名。这是操作系统的一个约束。

只需通过Integer.parseInt(...)将String解析为整数,然后调用实际方法!

相关内容

  • 没有找到相关文章

最新更新