繁体   English   中英

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

[英]Why can't my program access the math methods in Java?

我是第一次学习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类?

如果文件名为Math.java(它似乎是),则它必须包含一个名为Math的类。 看看这篇文章 Java正在寻找一个名为./Math.java的文件,它不包含似乎包含一个名为Math的类。

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

实际上,最好养成将所有内容放入命名包中并始终使用完全限定导入的习惯。 你会省去很多麻烦。

删除您可能无意中遗留在源代码目录中的文件Math.java 此文件阻止了JDK的java.lang.Math类的正常使用。

您还应该注意,在默认包中定义类是不好的做法,并且在此过程中会给您带来各种问题。 将源代码放入命名包中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM