java - 在Java中,这个 "double cannot be dereferenced"错误是什么意思?

标签 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>javac RandomCompliment.java RandomCompliment.java:14: double cannot be dereferenced System.out.print(" " + comps[ ( ((20) * Math. sin(i)).intValue() ) % comps.length ]);

   ^ 1 error

这里的“取消引用”是什么意思?

最佳答案

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

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

关于java - 在Java中,这个 "double cannot be dereferenced"错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33463421/

相关文章:

java - 在纯商业相关的应用程序中为基于 iPad 或 Android 的平板电脑开发更好的产品

java - SAX解析器: Specify DTD location in applet

java - 添加数据时出现 NullPointerException - Java

java - SQL 连接问题

java - Hibernate 查询返回空结果列表

java - 无法访问tomcat javascript文件夹

java - 为什么我的程序编译不正确?

java - Hibernate - 时间格式注释

java - 我可以在同一个应用程序中运行 RESTful 服务和 angularJS 以避免跨浏览器

java - 试图想出一种算法来对西类牙语单词进行排序