所以,我有一个与另一个类的许多实例有组合关系的类。
我使用了以下代码:
public class dungeon{
public Set<Character> character;
public dungeon(){
super();
Set<Character> = new Set<Character>;
}
}
但这不起作用。 (可能很明显,但我不知道该怎么做)
我该如何修复此代码?
答案 0 :(得分:3)
这不起作用,因为Set是一个接口而你无法实例化接口。
您必须使用其中一个实现Set
接口的类,例如TreeSet
:
character = new TreeSet<Character>();
或HashSet
:
character = new HashSet<Character>();
顺便说一句,将character
设为私有而非公开是个好主意(参见Encapsulation)。
答案 1 :(得分:1)
这是语法错误:
public dungeon(){
super();
character = new HashSet<Character>;
}
HashSet,或任何实现Set interface的类。
答案 2 :(得分:1)
Set
是界面。所以你不能用new创建它。你需要一个实现的对象。 HashSet
可能很有用。
public class dungeon{
public Set<Character> character;
public dungeon(){
super();
character = new HashSet<String>();
}
}