1
如果你有一個列表類的名稱列表,如如何使用大量的基於類名的Java對象的數組
List<String> runnables = null;
runnables.add("runnable1");
runnables.add("runnable2");
runnables.add("runnable3");
每個類實現Runnable
所以對於例如,這個工程
Thread t1 = new Thread(new runnable1());
t1.start();
但是,如果你想通過循環,並從陣列上運行所有這些,陣列在運行時動態生成的。即在編碼時你不知道哪些類名將在列表中,因爲它們可以改變。
runnables.forEach((String classname) -> {
System.out.println("The runnable is " + (String) classname);
Thread t1 = new Thread(new classname());
t1.start();
});
不行的,它說 「 找不到符號 符號:className類 位置:類ConncurrencyTesting 」 在啓動行「主題T1 = ......」在foreach 。
對於記錄:*反射*是某種程度上的完整「主題「就其本身而言,如果你對此一無所知,我認爲你有可能使自己負擔過重。 – GhostCat