java - 无法为最终变量长度赋值

标签 java

我最近注册了 codewars。我正在做我的第一个 java kata,我在代码上遇到了一个奇怪的错误,但对我来说看起来有效。这是代码:

import java.math.BigInteger;

public class Powers {
  public static BigInteger powers(int[] list) {
    BigInteger number;
    if (list.length = 0){
      number = 1;
    }else if (list.length = 1){
      number = 2;
    }else if (list.length > 1){
      number  = list.length * list.length;
    }
    return number;
  }
}

这是我得到的堆栈跟踪:

/Powers.java:6: error: cannot assign a value to final variable length
if (list.length = 0){
^
/Powers.java:6: error: incompatible types: int cannot be converted to boolean
if (list.length = 0){
^
/Powers.java:7: error: incompatible types: int cannot be converted to BigInteger
number = 1;
^
/Powers.java:8: error: cannot assign a value to final variable length
}else if (list.length = 1){
^
/Powers.java:8: error: incompatible types: int cannot be converted to boolean
}else if (list.length = 1){
^
/Powers.java:9: error: incompatible types: int cannot be converted to BigInteger
number = 2;
^
/Powers.java:11: error: incompatible types: int cannot be converted to BigInteger
number = list.length * list.length;
^
7 errors

java.lang.RuntimeException:/Powers.java:6: 错误: 无法为最终变量长度赋值 if (list.length = 0){ ^/Powers.java:6: 错误: 类型不兼容: int 无法转换为 boolean if (list.length = 0){ ^/Powers.java:7: 错误:不兼容的类型:int 无法转换为 BigInteger number = 1; ^/Powers.java:8: 错误:无法为最终变量长度赋值 }else if (list.length = 1){ ^/Powers.java:8: 错误:不兼容的类型:int 无法转换为 boolean }else if (list.length = 1){ ^/Powers.java:9: 错误:类型不兼容:int 无法转换为 BigInteger number = 2; ^/Powers.java:11: 错误:类型不兼容:int 无法转换为 BigInteger number = list.length * list.length; ^ codewars.runners.java$compile_and_load.doInvoke(java.clj:85) 处有 7 个错误,clojure.lang.RestFn.invoke(RestFn.java:439) 处 codewars.runners.java$fn__572.invoke(java.clj: 110) 在 clojure.lang.MultiFn.invoke(MultiFn.java:227) 在 codewars.runners$run.invoke(runners.clj:22) 在 codewars.core$_main$fn__634.invoke(core.clj:40) 在clojure.lang.AFn.call(AFn.java:18)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.lang.Thread.run(Thread.java:745)

最佳答案

您在此处使用赋值运算符 = 而不是比较运算符 ==:

if (list.length = 0)

关于java - 无法为最终变量长度赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991182/

相关文章:

data-visualization - Python 复制 Java Web 应用程序?

java - 绘制分层形状

java - 如何防止掷骰子的重复语句

java - S3(java sdk)中Transfer Manager复制和复制s3 Client的Object功能之间的区别

java - 找不到符号方法startActivity(android.content.Intent)

java - 无论如何@Inject/@Autowire 一个内部类到一个外部类?

java - Arrays.asList 如何返回实例化列表?

java - 发送电子邮件有时会出现 UnsupportedDataTypeException : no object DCH for MIME type

java - Java ResourceBundle.getBundle 如何加载属性文件?

javascript - 将 PDF 发送到后端会破坏编码和字符