Java 无法将导入的方法解析为方法

Java 无法将导入的方法解析为方法,java,import,Java,Import,我想使用重力常数,它是在另一个文件中定义的,通过乘以人的质量来计算人的体重。遗憾的是,重力常数“无法解析为一种类型”。 此处定义了重力常数: 包信息1类; 公共课物理{ 静态浮点getGravity(){ 浮子重力=9.80665F; 返回重力; } } 我已经使用 导入info1class.Physics; ,但我的方法 private float getWeight(){ 返回(质量*(新getGravity()); } 还是不行。 我曾读到,刷新或重新启动Eclpise通常可以解决此

我想使用重力常数,它是在另一个文件中定义的,通过乘以人的质量来计算人的体重。遗憾的是,重力常数“无法解析为一种类型”。 此处定义了重力常数:

包信息1类;
公共课物理{
静态浮点getGravity(){
浮子重力=9.80665F;
返回重力;
}
}
我已经使用

导入info1class.Physics;
,但我的方法

private float getWeight(){
返回(质量*(新getGravity());
}
还是不行。
我曾读到,刷新或重新启动Eclpise通常可以解决此错误,但这两种方法对我都不起作用。

您正在使用一种不允许的方法调用
new
。即使它是私有的,默认情况下该成员也是包私有的,因此该包之外的其他类将看不到它

我是这样做的:

package info1Classes;

public class Physics {
    public static final float GRAVITY = 9.80665F;
}
然后在你的另一节课上,你可以用这个来得到重力的值:

Physics.GRAVITY;

getGravity()
是包私有的(因为您没有在方法的声明中指定访问修饰符),也就是说,它对于不在同一个包中的任何类都不可见。您也不会使用
new
关键字调用非构造函数的方法。当然,我假设您的重力值在整个程序中不会发生变化,就像将此模拟移动到另一个星球的情况一样。如果是这样的话,一种方法会更合适。谢谢!因为我被迫使用重力常数,所以我不能完全接受你的解决方案,但我发现我只需要在导入之前添加一个“物理”。如果有人关心的话,更改后的代码如下:java私有float getWeight(){return(mass*Physics.getGravity());}