【问题标题】:Changing main parameter type更改主要参数类型
【发布时间】:2023-04-03 23:30:01
【问题描述】:

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

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

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

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

【问题讨论】:

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

标签: java eclipse static main


【解决方案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
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2017-10-07
                      • 1970-01-01
                      • 2017-05-02
                      • 1970-01-01
                      • 2019-03-20
                      • 2016-01-04
                      • 2021-10-06
                      • 1970-01-01
                      相关资源
                      最近更新 更多