我有一个相当基本的问题,在将我的IDE从NetBeans切换到Eclipse后出现了一个问题。
在Eclipse中,您可以定义存储所有配置和设置的工作空间。在这个工作区内,我创建了一个新项目,其中所有项目都存放在一个Java实验室中。
这是树:
使用NoObject
,这就是我所拥有的(除了在这个问题的背景下不重要的事情):
static int randInt(int value)
{
Random randomNum = new Random();
return randomNum.nextInt(value);
}
使用NoObjectTest
类,我们被告知使用rantInt()
静态方法来演示全局原则。
在我的NoObjectTest
中,这就是我所拥有的:
public class NoObjectTest
{
public static void main(String[] args)
{
System.out.println(randInt(5));
}
}
有了这个说法,Eclipse告诉我,尽管在randInt()
中使用static
类型的此方法,但找不到NoObject
。
我尝试过的事情是:
将static
方法从NoObject
作为类/库导入NoObjectTest
。这不起作用。
在NoObjectTest
内创建构造函数存根。这不起作用。
有趣的是,我尝试过的东西都在NetBeans中运行。但是,将它迁移到Eclipse后,它就停止了工作。
有人能告诉我这是错的吗?我是否错误地设置了Eclipse?目前,每个新项目都是一个新课程(大学意义上的课程,而不是编程意义上的),因此每个“实验室”都是一个新的“项目”。这是正确的方法吗?
答案 0 :(得分:0)
要调用静态方法,必须包含方法所在类的名称。使用NoObject.randInt(5);
答案 1 :(得分:0)
仅仅因为一个类在同一个包中并不意味着它的static
方法可以直接通过其他类中的名称访问。要使其可访问,您需要导入它
import static NoObject.randInt; // or all the static members with NoObject.*
并使用它
randInt(value);
或者使用类型名称
显式限定调用NoObject.randInt(value);