编译时的java错误不兼容类型

编译时的java错误不兼容类型,java,arrays,primes,Java,Arrays,Primes,这是我的代码,我的问题是我不能编译它,我包括了我在下面得到的错误 import java.util.*; public class util3_2 { public static boolean IsPrime(int p) { for (int i = 2; i < p; i++) { if (p % i == 0 && i !=

这是我的代码,我的问题是我不能编译它,我包括了我在下面得到的错误

import java.util.*;
public class util3_2
{
        public static boolean IsPrime(int p)
        {
                for (int i = 2; i < p; i++)
                {
                        if (p % i == 0 && i != p)
                                return false;
                }
                return true;
        }
        public static int[] GetPrimes(int n)
        {
                List<Integer> arr = new ArrayList<>();
                for (int j = 1; j <= n; j++)
                {
                        if(IsPrime(j))
                        {
                                arr.add(j);
                        }
                }
                return Arrays.asList(arr);
        }
}
import java.util.*;
公共类util3_2
{
公共静态布尔iPrime(int p)
{
对于(int i=2;i对于(int j=1;j您应该返回一个数组。通过调用列表“arr”上的toArray方法将列表转换为数组。

您需要一个
int[]
,但您提供的是一个
列表
。它们不是一回事。将函数的返回值更改为List并返回arr本身。您永远无法从该列表中获得一个基元
int
数组。
 error: incompatible types
                return Arrays.asList(arr);
                                    ^
  required: int[]
  found:    List<List<Integer>>
1 error