Java 通过指定的对象实例化hashmap
我想为一个名为Java 通过指定的对象实例化hashmap,java,object,hashmap,Java,Object,Hashmap,我想为一个名为Manager的类创建一个构造函数,该类以Object为参数: public class Manager{ public Manager(Object object){} } 在这个构造函数中,我想实例化一个非本地HashMap对象,它使用String和构造函数参数object,所以它是这样的: public class Manager{ private HashMap objects; public Manager(Object object){
Manager
的类创建一个构造函数,该类以Object
为参数:
public class Manager{
public Manager(Object object){}
}
在这个构造函数中,我想实例化一个非本地HashMap对象,它使用String
和构造函数参数object
,所以它是这样的:
public class Manager{
private HashMap objects;
public Manager(Object object){
objects = new HashMap<String, object>(); /*note it's 'object' and not 'Object'*/
}
}
我知道我提供的示例没有使用正确的java语法,我只是用java来描述我要找的东西 我只是想解释一下,我想要一个构造函数,它可以通过使用构造函数参数来实例化HashMap对象
编辑:我将尝试更好地解释,manager类应该保存来自同一类的对象,并使用字符串查找它们。例如,我将使用一个精灵表管理器来查找播放器的精灵表。在HashMap声明中,如
public Manager(Object object){
objects = new HashMap<String, object>();
}
公共管理器(对象){
objects=newhashmap();
}
在Java中是不可能的。因为,对象应该只是非基本类型,而不是对象的任何引用。您将实例的类型和实例本身混为一谈 我不确定您到底想要实现什么,但泛型可能是一种解决方案:
public class Manager<T> {
private final Map<String, T> objects;
public Manager() {
objects = new HashMap<String, T>();
}
}
公共类管理器{
私有最终地图对象;
公共经理(){
objects=newhashmap();
}
}
在其他地方:
Manager<MyObject> myManager = new Manager<MyObject>();
Manager myManager=new Manager();
您就快到了:
public class Manager<T> {
private final Map<String, T> myMap;
public Manager(){
myMap = new HashMap<String, T>();
}
}
相反,您可以使用泛型来解决它,如下所示:
class Manager<T> {
HashMap<String, T> map = new HashMap<String, T>();;
public Manager(T object) {
map.put("something", object);
}
}
类管理器{
HashMap=新的HashMap();;
公共经理(T对象){
地图。放置(“某物”,物体);
}
}
在地图中用作键的字符串是什么?它只是一个id,因此您可以通过其名称访问对象。什么是MyObject
?您可以在构造函数中传递哪些其他对象?这些对象之间是否存在层次关系?“new HashMap();”对象需要是一个类型。将一个具体对象放入类型定义中。我建议给你一个更好的例子来说明你想实现什么。@Timo我想实现一个hashmap,我可以通过构造函数来选择它的类型。“我知道我提供的例子没有使用正确的java语法,我只是用java来描述我要找的东西。”
final Manager<MyObject> manager = new Manager<MyObject>();
class Manager<T> {
HashMap<String, T> map = new HashMap<String, T>();;
public Manager(T object) {
map.put("something", object);
}
}