更改主要参数类型

Posted

技术标签:

【中文标题】更改主要参数类型【英文标题】:Changing main parameter type 【发布时间】:2012-02-09 16:09:33 【问题描述】:

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

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

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

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

【问题讨论】:

你应该听老师的话,而不是浏览 *** ;-) 老师从没提过 :(,也许在这里问的有点太快了,但至少我现在确定了 :) 【参考方案1】:

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

我希望你能弄清楚其余的:)

【讨论】:

或等效的 Integer.valueOf(String) 是的,但正常情况是使用原始类型而不是对象,所以我更喜欢parseInt 谢谢 :),所有其他人也一样!【参考方案2】:

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

这里是documentation 的链接,用于Integer.parseInt(String)

【讨论】:

【参考方案3】:

主方法的签名不能改变。这是操作系统的限制。

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

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

【讨论】:

【参考方案7】:

尝试在字符串数组中发送整数。

new String[]"1"

然后获取它:

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

【讨论】:

【参考方案8】:

像下面这样写一个main方法

public static void main(String[] args)

.

并使用Integer.parseInt(str)

【讨论】:

【参考方案9】:

你必须离开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.

问候!

【讨论】:

【参考方案10】:

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

看看这个代码示例:

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

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

【讨论】:

【参考方案11】:

这个类会打印出你在命令行中输入的整数:

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

【讨论】:

以上是关于更改主要参数类型的主要内容,如果未能解决你的问题,请参考以下文章

Java在Interface中创建方法并更改参数类型

Copy-Item 是不是更改 PowerShell 中目标参数的类型

PYTHON 参数传递

具有主要类型和对象的 objc 可变参数

Python与Javascript函数的参数传递

ArgParse Python 模块:更改继承参数的默认参数值