メソッド、またはおそらく匿名の内部クラスを何らかの方法で、ドライバー クラスのメイン メソッドに配置する特定のイディオムがあります。
package net.bounceme.dur.misc;
import net.bounceme.dur.misc.Foo;
public class StaticRef {
Foo f = Foo.INSTANCE;
public static void main(String[] args) throws Exception {
f.connect(); //move this to inside "run"
/*
public void run(){
StaticRef sf = new StaticRef();
//do stuff here
}
*/
}
}
以下のエラーを防ぐために:
init:
Deleting: /home/thufir/NetBeansProjects/nntp/build/built-jar.properties
deps-jar:
Updating property file: /home/thufir/NetBeansProjects/nntp/build/built-jar.properties
Compiling 1 source file to /home/thufir/NetBeansProjects/nntp/build/classes
/home/thufir/NetBeansProjects/nntp/src/net/bounceme/dur/misc/StaticRef.java:11: non-static variable f cannot be referenced from a static context
f.connect(); //move this to inside "run"
1 error
/home/thufir/NetBeansProjects/nntp/nbproject/build-impl.xml:626: The following error occurred while executing this line:
/home/thufir/NetBeansProjects/nntp/nbproject/build-impl.xml:245: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)
しかし、今のところ何も見つかりません。スレッドの例に似たようなものがありますが、構文がよくわかりません。
以下は主に私が望むものですが、完全に正しいとは思いません:
package net.bounceme.dur.misc;
public class StaticRef {
Foo f = Foo.INSTANCE;
public static void main(String[] args) throws Exception {
StaticRef sf = new StaticRef();
sf.f.connect();
}
}
私が望むのは、sf のインスタンス化を...に入れることです。よくわかりません。たぶん、上記は正しくて「OK」ですか?