请原谅我,如果我的“模板”术语不正确,我来自c ++背景。我遇到了默认构造函数的问题。编译器说“标识符预期”,我不理解。有人知道答案吗?
所以你知道,GameObject有一个名为'object'的HashMap已经初始化了。
import java.util.HashMap;
import java.io.Serializable;
public class GameList<T, V> extends GameObject
{
protected HashMap<T, V> list;
public GameList<T, V>()
{
list = object;
}
}
答案 0 :(得分:2)
你几乎拥有它:
public GameList()
{
list = object;
}
您无需在构造函数上重复<T, V>
。
答案 1 :(得分:2)
您的代码存在两个问题:
GameObject
的{{1}}对象没有类型参数,则需要添加类型转换:HashMap
答案 2 :(得分:0)
除了上面提到的以外,还要添加一些有用的最佳实践:
行:
list = object;
可能是一个错误,因为 object 没有作为构造函数参数传递,如果你的超类中有对象,那么声明它在那里受到保护(很可能是一个错误,有两个指向同样的例子)。
如果你想要父类中的对象副本(我怀疑),但无论如何都要调用
list = new HashMap<T, V>(object);
同时避免调用列表列表,地图,更糟糕的是:地图列表变量名称没有任何添加对于它的类型的值,程序读者不理解你的变量应该包含什么。
类似地避免列出用户列表:
最好的事情是更具可能性,以便立即进行代码理解并避免不必要的评论:说出您声明的列表或地图中的内容,例如。
Map<Long, User> connectedFreindsById;
List<User> friends;
最诚挚的问候, 齐德哈姆迪 - http://1vu.fr