关于Eclipse中项目中的静态方法

时间:2014-04-06 21:21:17

标签: java eclipse netbeans static

我有一个相当基本的问题,在将我的IDE从NetBeans切换到Eclipse后出现了一个问题。

在Eclipse中,您可以定义存储所有配置和设置的工作空间。在这个工作区内,我创建了一个新项目,其中所有项目都存放在一个Java实验室中。

这是树:

enter image description here

使用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

我尝试过的事情是:

  1. static方法从NoObject作为类/库导入NoObjectTest。这不起作用。

  2. NoObjectTest内创建构造函数存根。这不起作用。

  3. 有趣的是,我尝试过的东西都在NetBeans中运行。但是,将它迁移到Eclipse后,它就停止了工作。

    有人能告诉我这是错的吗?我是否错误地设置了Eclipse?目前,每个新项目都是一个新课程(大学意义上的课程,而不是编程意义上的),因此每个“实验室”都是一个新的“项目”。这是正确的方法吗?

2 个答案:

答案 0 :(得分:0)

要调用静态方法,必须包含方法所在类的名称。使用NoObject.randInt(5);

答案 1 :(得分:0)

仅仅因为一个类在同一个包中并不意味着它的static方法可以直接通过其他类中的名称访问。要使其可访问,您需要导入它

import static NoObject.randInt; // or all the static members with NoObject.*

并使用它

randInt(value);

或者使用类型名称

显式限定调用
NoObject.randInt(value);