java - 为什么我的程序不能访问 Java 中的数学方法?

标签 java class math

我是第一次学习 Java。我写了一个简单的程序:

public class Solver {
    public static void main(String[] args) {
        double angle = 1.5;
        double height = Math.sin(angle);
        System.out.print("The sine of " + angle + " is: ");
        System.out.println(height);
    }
}

当我尝试编译它时,我在终端中收到以下错误:

Solver.java:4: cannot access Math
bad class file: ./Math.java
file does not contain class Math
Please remove or make sure it appears in the correct subdirectory of the classpath.
        double height = Math.sin(angle);
                    ^
1 error

为什么我不能访问数学课?

最佳答案

如果一个文件名为 Math.java(看起来是这样),它必须包含一个名为 Math 的类。看看this post . Java 正在寻找一个名为 ./Math.java 的文件,在您的情况下,该文件似乎不包含名为 Math 的类。

如果您实际上正在尝试使用标准的 Java Math 包,则需要删除项目目录中名为 Math.java 的所有内容,因为那样将与内置的冲突,或者使用完全限定的导入来访问标准的:import java.lang.Math;。从 java.lang 包导入通常不是必需的,但如果名称有冲突,使用完全限定的导入来显式访问它很重要。

真的,最好养成 putting everything in a named package 的习惯并且始终使用完全合格的进口产品。您会省去很多麻烦。

关于java - 为什么我的程序不能访问 Java 中的数学方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16693482/

相关文章:

algorithm - 在坐标系中寻找相反的方向

algorithm - 比较两个 3Dmesh

Javascript (jQuery) 将图像缩放到其容器的中心点

java - 如何使用 VisualVM 或使用 unix 命令杀死 java 线程?

java - 如何在 java 中将轴放在 .png 文件上?

c# - 像在 c# 中一样将整个类作为参数传递给线程 c++

c++ - 枚举类在C++中不接受带连字符/破折号的文本

c++ - 在像 ostream& 运算符 <<(...) 这样的类名之后使用的 & 符号是什么?

java - 从下拉列表中获取外键ID

java - GCM 类转换异常