更改主要参数类型

时间:2012-01-13 12:51:53

标签: java eclipse static main

我目前正在Eclipse中开展一个学校项目(我们刚刚开始使用它)并且我们遇到了一个小小的问题:因为之前我们使用过BlueJ,我们没有任何main方法,我们添加了一个但是运行了陷入困境。

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

  

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

我想知道我们应该做些什么/改变以使其发挥作用。

11 个答案:

答案 0 :(得分:7)

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

我希望你能弄明白其余的事情:)。

答案 1 :(得分:3)

Java将寻找public static void main(String[] args) 您必须将整数值作为String传递并解析它。

以下是指向Integer.parseInt(String) documentation的链接。

答案 2 :(得分:3)

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

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

答案 3 :(得分:2)

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

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

答案 4 :(得分:2)

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

new String[]{"1"}

然后获取它:

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

答案 5 :(得分:2)

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

查看此代码示例:

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

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

编写如下的主要方法

public static void main(String[] args){

}

并使用Integer.parseInt(str)

答案 8 :(得分:1)

您必须按如下方式保留main方法:

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.
}

问候!

答案 9 :(得分:1)

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

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

答案 10 :(得分:0)

无法更改主方法的签名。这是操作系统的约束。

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