取決於你想要的。如果執行後想讓s1和s100可用於進一步使用,那麼這根本不可能。也不可能編寫任何可以訪問任何非全局變量的代碼。
你可以做的是編寫一個類,它實現一個接口並在運行時編譯該類。然後可以使用反射來實例化這個新類的實例。如果接口提供了適當的方法,則可以在執行前,執行期間和執行後查詢此對象。您也可以使用反射訪問對象的字段。
雖然這是非常黑客,並試圖以Java不適合的方式完成的事情。如果你只想創建100個任意字符串,那麼最好使用一個數組並創建你自己的小型DSL來完成簡單的任務。
您可能希望嘗試的最後一種方法是使用在JVM上運行的腳本語言,如Jython或Groovy。 Groovy對此很棒。由於Groovy是Java的超集,因此您不必擔心有效的Java無法編譯。儘管可能會擔心的是無效的Java可能會被編譯。例如String s = 'some string'
是有效的Groovy,但不是有效的Java。
使用Groovy,你可以這樣做:
import groovy.lang.GroovyShell;
public class SomeClass {
public static void main(String[] args) {
GroovyShell shell = new GroovyShell();
for (String arg : args) {
Object result = shell.evaluate(arg);
System.out.println("result is: "+result);
}
}
}
對於這一點,你可以有說String s1 = "hello";
,String s2 = "world";
和String combined = s1 + " " + s2;
的輸入ARGS。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html – asawyer 2012-04-16 12:42:59
這還不清楚。你試圖解決什麼問題? – 2012-04-16 12:44:01
它不是問題 – Trikaldarshi 2012-04-16 12:44:31