0

非常简单的问题,但我没有正确理解静态。

我有一个包含我的 main 及其调用 testMain 的 java 文件。

使用我的 testMain 它可以创建许多使用其他类的类。

例如 testMain>>GUI 和 testMain>>model 和 testMain>>controller

现在我有一个名为 generatorTester 的类,我想声明一次:

public static utils.generatorTester randomGen = new utils.generatorTester ();

(utils 是我的常用类的自定义包)

为什么上面的行不大声我做以下

classNameOfMainFunction.randomGen

我在这里编程错了吗?这甚至可能吗?

我基本上想使课程全球化并在任何地方使用它。

4

2 回答 2

2

公共类的公共静态字段可以在任何地方使用,您只需要使用正确的语法来访问它。

如果您声明:

package foo;

public class Global {
    public static Some thing;
}

import foo.Global;

您可以使用以下方式访问该字段

Global.thing

或者,你可以做

import static foo.Global.thing;

并使用

thing
于 2013-03-01T22:15:38.203 回答
2

你能得到的最好的结果是这样的:

public abstract class GloballyUsed {
    public static int method() { return 4; 
    /* determined by fair
     * dice roll, guaranteed to be random */
    }

和:

GloballyUsed.method();

打电话到别处。

从 Java 5 开始,每条评论都需要注意(我刚刚了解到这一点),您可以只导入一个特定的方法名称:

import static {package}.GloballyUsed.method;

注意我添加了关键字abstract,这是为了进一步让您相信您从未实际实例化GloballyUsed。它没有实例。static你可能有一些关于什么意思的阅读要做。

于 2013-03-01T22:12:38.227 回答