这是一个简单的问题(我认为)
假设我有这段代码(假设我有一个Dog类)
String name = "dog";
dog name = new dog();
我该如何让Java将"name"识别为字符串并将对象命名为"dog"?
这是一个简单的问题(我认为)
假设我有这段代码(假设我有一个Dog类)
String name = "dog";
dog name = new dog();
我该如何让Java将"name"识别为字符串并将对象命名为"dog"?
虽然在一些脚本语言(如PHP)中可以实现您尝试的操作(这也是许多开始使用Java的PHP程序员经常问的问题),但这并不是Java的工作方式,事实上,变量名称要比您意识到的要不重要得多,并且在代码编译后几乎不存在。更重要的是变量引用,也就是在程序的特定点获得访问特定对象的能力,您可以通过使用Map等方式使字符串轻松地引用对象。
例如:
Map<String, Dog> dogMap = new HashMap<String, Dog>();
dogMap.put("Fido", new Dog("Fido"));
Dog myPet = dogMap.get("Fido");
或者您可以通过数组、ArrayLists、LinkedLists或其他几个集合方式获得对象的引用。Dog fido = new Dog;
Dog spot = fido; // now fido and spot refer to the same object
如果你想要给一个变量“命名”,考虑给类添加一个名称属性:class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
如果您希望的话,现在您可以为每个 Dog 对象赋予一个(半)唯一的名称。
map.put("Cat", new Cat())
,你该如何声明HashMap?是HashMap<String, Object>
吗?如何实例化这个类? - bretonics我猜你在考虑枚举类型(Enums)吧?
private static void test () {
Animal animal = Animal.valueOf("Dog");
}
enum Animal {
Dog,
Cat,
Cow,
Pig,
Rat,
Ant,
Gnu;
}