[英]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.