我是第一次学习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);
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译它时,我在终端中收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
为什么我不能访问Math类?
Hen*_*ter 21
如果一个文件名为Math.java(它似乎是),它必须包含一个名为的类Math.看看这篇文章.Java正在寻找一个名为的文件./Math.java,它不包含似乎包含Math在您的情况下调用的类.
如果您实际上正在尝试使用标准Java Math包,则需要删除Math.java项目目录中指定的任何内容,因为这会与内置的相冲突,或者使用完全限定的导入来访问标准一个:import java.lang.Math;.java.lang通常不需要从包中导入,但如果您的名称有冲突,则使用完全限定的导入来显式访问它是很重要的.
实际上,最好养成将所有内容放入命名包中并始终使用完全限定导入的习惯.你会省去很多麻烦.
Mar*_*nik 15
删除Math.java您可能无意中留在源代码目录中的文件.此文件阻止了JDK java.lang.Math类的正常使用.
您还应该注意,在默认包中定义类是不好的做法,并且在此过程中会给您带来各种问题.将源代码放入命名包中.