为什么我会收到意外类型,需要变量的错误?即使我使用的是变量

Why am I getting a unexpected type, variable required error? even though I am using a variable

List <BigInteger> valaArr = new ArrayList <BigInteger>();
        Scanner value = new Scanner(System.in);
        System.out.print("Enter number to test for prime: ");
        BigInteger n = value.nextBigInteger();

        for(BigInteger i = BigInteger.valueOf(1); i.compareTo(n) = -1; i = i.add(BigInteger.valueOf(1)))
        {
            valaArr.add(i);
        }

显然我的 i.compareTo(n) 给了我一个意外的类型,找到了变量所需的值。知道为什么即使我的 i 和 n 是变量也会发生这种情况吗?

您可以试试这个解决方案

for(BigInteger i = BigInteger.valueOf(1); i.compareTo(n) <0; i = i.add(BigInteger.valueOf(1)))
{
 valaArr.add(i);
}