我有以下代码:
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
这里的“解除引用”是什么意思?
答案 0 :(得分:2)
Math.sin(i)
返回double
。您无法在intValue()
(或任何原始数据类型)上调用方法(double
)。相反,您可以将double
向下转换为int
:
(int) (20 * Math.sin(i))