在Java中,这个“双重不能被解除引用”的错误是什么意思?

时间:2015-11-01 14:47:31

标签: java

我有以下代码:

public class RandomCompliment {

  static final String[] comps  = { "gorgeous butterfly!", "strawberry milkshake!", "calm waterfall", "smart cookie", "big genius", "friendly cat" };

  public static void main(String[] args) {

    for (int i = 0; i < 200 ; i++ ) {
      System.out.print("Good monring, " + comps[(((20) * Math.sin(i)).intValue()) % comps.length]);
    }
  }
}

它给了我这个错误:

  

C:\ Misc_Stuff \ RandomScratch&gt; javac RandomCompliment.java   RandomCompliment.java:14:double无法解除引用                                   System.out.print(“”+ comps [(((20)* Math.sin(i))。intValue())%comps.length]);

   ^ 1 error

这里的“解除引用”是什么意思?

1 个答案:

答案 0 :(得分:2)

Math.sin(i)返回double。您无法在intValue()(或任何原始数据类型)上调用方法(double)。相反,您可以将double向下转换为int

(int) (20 * Math.sin(i))