とorherクラスでスレッドの挙動をシミュレートしようとすると:私はこのプログラムを実行するとは、私はこのクラスを持っているJavaの
public class MyThread {
public static void main(String[] args) {
Thread thread = new Thread() {
public void run() {
System.out.print("Test from Anonymous Class!");
}
};
Thread newThread = new Thread(thread);
newThread.run();
}
}
、私はTest from Anonymous Class!
を取得します。
さて、私はこのような別のクラスで、この動作をシミュレートしようとしている:私はこのプログラムを実行すると
interface MyInterface {
public void doTest();
}
class MyClass implements MyInterface {
public MyClass() {}
public MyClass(MyInterface myInterface) {}
public void doTest() {
System.out.println("Test from MyClass!");
}
}
public class Test {
public static void main(String[] args) {
MyClass myClass1 = new MyClass() {
public void doTest() {
System.out.println("Test from Anonymous Class!");
}
};
MyClass myClass2 = new MyClass(myClass1);
myClass2.doTest();
}
}
、私はTest from MyClass!
を取得します。なぜ拳の例ではTest from Anonymous Class!
を印刷しているのですか? MyClass
クラスで同じ動作をどうやって得ることができますか?
ありがとうございます!
2番目の例は意味をなさない。匿名クラスを作成しますが、使用しません。それを使用する場合は、代わりに 'myClass1.doTest();'を呼び出します。どのような振る舞いをシミュレートしようとしているのか分かりませんが、サンプルコードは何もスマートではありません。コンストラクタパラメータを渡していますが、何もしていません。 – Kayaman