回答
否它是不可能的。 Java中沒有動態變量。在編譯期間,必須在源代碼中聲明Java變量名稱。
如果想存儲你可以嘗試使用Map
將數據保存爲以下用戶輸入的值對象。
Map<String, Object> objects = new HashMap<String, Object>();
String name = scan.nextLine();
Object obj = new Object();
objects.put(name, obj); // saving the objects in Map
感謝您的幫助 – 2013-03-05 12:32:12
不,你不能在java中這樣做。由於您應該已經定義了一個類來創建它的一個對象。
不,你不能做到這一點。
我建議有一個自定義類和存儲實例名稱:
public class MyClass {
private String instanceName;
public MyClass(String instanceName) {
this.instanceName = instanceName;
}
}
MyClass myObj = new MyClass(scan.nextLine());
有一些方法,你可以僞造這樣做。您可以使用地圖來給出動態命名對象的感知。但既然你說你是初學者,簡單的答案是否定的。確保你知道你在你的例子中要求什麼。你舉的例子是說相當於:
String line = "foo";
Object line = new Object();
我的猜測是,這不是你想要什麼(是不可能的)。
我想他想,Object foo = new Object(); ,不可能,只要我knwo – 2013-03-05 11:12:06
鑑於線
Type variable_name = expression ;
名稱variable_name
在範圍的其餘部分被簡單地用於參照表達的結果。你知道Java是一種編譯語言,這些名字只對程序員有用。一旦編譯器完成了它的工作,它就可以使用一個轉換表並用它想要的任何ID替換這些名稱。
由於這些名字甚至都不在運行時存在,有沒有在運行時的變量選擇名字的方式。
但是您可能需要訪問這取決於用戶輸入的物體(例如像PHP變量變量$$a_var
)。根據您的上下文,您可以使用反射來訪問實例成員,或者使用簡單的Map<String, Object>
。例如用反射:
public class VariableRuntime {
static class Person {
public String first, last, city;
}
public static void main(String[] args) throws Exception {
Person homer = new Person();
homer.first = "Homer";
homer.last = "Simpson";
homer.city = "Springfield";
System.out.println("What do you want to know about Homer? [first/last/city]");
String what = new Scanner(System.in).nextLine();
Field field = Person.class.getDeclaredField(what);
System.out.println(field.get(homer));
}
}
同樣用Map<String, String>
:
public class VariableRuntime {
public static void main(String[] args) throws Exception {
Map<String, String> homer = new HashMap<String, String>();
homer.put("first", "Homer");
homer.put("last", "Simpson");
homer.put("city", "Springfield");
System.out.println("What do you want to know about Homer? [first/last/city]");
String what = new Scanner(System.in).nextLine();
System.out.println(homer.get(what));
}
}
- 1. 使用lex /創建掃描儀?
- 2. 掃描儀對象跳過
- 3. 掃描儀對象 - 分割字符串
- 4. 字符使用掃描儀
- 5. 創建掃描儀用戶輸入功能的對象
- 6. 識別掃描儀新線
- 7. 使用掃描儀
- 8. 創建只有一個掃描儀對象java
- 9. 使用掃描儀掃描txt文件
- 10. 使用掃描儀掃描Java輸入
- 11. 如何使用來自掃描儀對象的輸入創建運行總計
- 12. 使用掃描儀來標記文件
- 13. 與掃描儀對象錯誤java.util.NoSuchElementException
- 14. 掃描儀內的掃描儀錯誤
- 15. 店字符串中使用掃描儀
- 16. 使用掃描儀讀取字符
- 17. 掃描,掃描儀類
- 18. 抽象類與掃描儀
- 19. 掃描儀對字符串和int
- 20. 使用掃描儀類
- 21. 如何使用掃描儀
- 22. 使用掃描儀的Java
- 23. 加入使用掃描儀
- 24. 使用掃描儀導入
- 25. 如何使用掃描儀
- 26. 複利使用掃描儀
- 27. InputMismatchException,使用掃描儀
- 28. 如何使用掃描儀
- 29. 使用掃描儀讀取
- 30. 使用掃描儀循環
如果你不知道名稱,你打算如何使用它? – 2013-03-05 11:04:22
簡單地說:號 你想通過這樣做到什麼?如果對象名稱與用戶相關,則該名稱也可以是對象的屬性。 – 2013-03-05 11:04:26
我認爲@cowls的答案,是你的問題的答案 – 2013-03-05 11:11:17