更改主要参数类型
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
【讨论】:
以上是关于更改主要参数类型的主要内容,如果未能解决你的问题,请参考以下文章