'此方法必须返回类型为int'Java的结果?

时间:2013-01-20 15:53:34

标签: java methods return-value

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的大小!

7 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

This method must return a result of type int

您可以执行以下操作,而不是打印列表中的所有值:

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

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

答案 2 :(得分:0)

问题出在这个方法中:

public static int ArrayListMax(ArrayList List)
{

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

您没有从此方法返回,必须返回int类型才能解决该错误。因为您已将int指定为返回类型。

答案 3 :(得分:0)

您创建了返回结果的函数

public static int ArrayListMax(ArrayList List) 

为了解决您的问题,如果您不需要返回任何内容,请写

public static void ArrayListMax(ArrayList List) 

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

首先,即使您已将其重新调整类型设置为ArrayListMax,也不会使用int方法返回任何内容。从列表中直接打印时返回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);
}

答案 6 :(得分:0)

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