【问题标题】:'This method must return a result of type int' Java?'此方法必须返回 int 类型的结果' Java?
【发布时间】:2013-01-20 15:53:34
【问题描述】:
public static void main(String args[])
{
    double arr[] = {1,-6.3,9000,67.009,1.1,0.0,-456,6,23,-451.88};

    ArrayList<Integer> List = new ArrayList<Integer>();

     List.add(1);
     List.add((int) -6.3);
     List.add(9000);
     List.add((int) 67.009);
     List.add((int)1.1);
     List.add((int)0.0);
     List.add(-456);
     List.add(6);
     List.add(23);
     List.add((int)451.88);
}

public static int ArrayListMax(ArrayList List)
{

    for (int i=0; i<List.size(); ++i)
    {
        System.out.println(List.get(i));
    }

错误在:

  public static int ArrayListMax(ArrayList List) 

这可能是一个非常糟糕的错误,但我是 Java 新手,所以请原谅我。

有什么帮助吗?

谢谢。

编辑:

我想让 ArrayListMax 方法打印 List 的大小!

【问题讨论】:

  • 声明方法为public static void ArrayListMax(ArrayList List),因为你没有返回任何东西。
  • 您没有显示完整的ArrayListMax 代码。您可能写错了退货声明或错过了它。

标签: java methods return-value


【解决方案1】:

假设您试图在方法 arrayListMax 中获取 List 中的最大值,则需要根据错误告诉您的方法签名返回一个整数

This method must return a result of type int

您可以这样做,而不是打印列表中的所有值:

public static int arrayListMax(List<Integer> List) {
   return Collections.max(list);
}

使用Java Naming Conventions。方法和变量名称以小写字母开头。使用这种方法有助于避免实例和类型之间的混淆(例如,在main 方法中的List 的情况下)。

【讨论】:

    【解决方案2】:

    return 语句添加到返回intArrayListMax() 方法或将方法签名从public static int 更改为public static void。并在方法中添加一个结束 }

    此外,您不应使用List 作为该方法的参数名称,因为它是您在此代码中实际导入的接口的名称。 java中的约定是变量名和方法名以小写字母开头(驼峰式),类名以大写字母开头(帕斯卡式)。

    【讨论】:

      【解决方案3】:

      这个方法有问题:

      public static int ArrayListMax(ArrayList List)
      {
      
          for (int i=0; i<List.size(); ++i)
          {
             System.out.println(List.get(i));
          }
      }
      

      你没有从这个方法返回,你必须返回 int 类型来解决这个错误。由于您已将 int 指定为返回类型。

      【讨论】:

        【解决方案4】:

        你创建的函数是返回一个结果

        public static int ArrayListMax(ArrayList List) 
        

        为了消除你的问题,如果你不需要返回任何东西,写

        public static void ArrayListMax(ArrayList List) 
        

        void 表示您不希望该方法返回结果。

        【讨论】:

          【解决方案5】:

          如果您只是打印值,则签名应该是 public static void ArrayListMax(ArrayList List)。

          【讨论】:

            【解决方案6】:

            首先,即使您已将其 retun 类型设置为 int,您也不会使用 ArrayListMax 方法返回任何内容。当您直接从列表中打印时,要么返回void

            第二,即使您将正确的返回类型设置为ArrayListMax方法,您仍然需要在main方法中调用该方法,如下所示:

            public static void main(String args[])
            {
                double arr[] = {1,-6.3,9000,67.009,1.1,0.0,-456,6,23,-451.88};
            
                ArrayList<Integer> List = new ArrayList<Integer>();
            
                 List.add(1);
                 List.add((int) -6.3);
                 List.add(9000);
                 List.add((int) 67.009);
                 List.add((int)1.1);
                 List.add((int)0.0);
                 List.add(-456);
                 List.add(6);
                 List.add(23);
                 List.add((int)451.88);
                 YourClassNameInWhichMethodIs.ArrayListMax(List);
            }
            

            【讨论】:

              【解决方案7】:

              您应该使用 return 语句,因为 Methode 正在返回一个 int 类型值。

              【讨论】:

                猜你喜欢
                • 2018-03-08
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-12-18
                • 2015-09-25
                • 2020-02-16
                • 2017-02-25
                相关资源
                最近更新 更多