这是我的错误消息:
Set.java:12: error: <identifier> expected
data = (T[]) new Object[10];
^
1 error
这是我的Set.java代码。
public class Set<T>{
private T[] data;
private int used;
private int capacity;
public Set(){
used = 0;
capacity = 1024;
@SuppressWarnings("unchecked")
data = (T[]) new Object[10];
}
public int empty(){
if(used == 0){
return 1;
}
else{
return 0;
}
}
如果我做T[ ] data = (T[]) new Object[10];
错误消失了。但我不想使用T[ ]
因为,我已经在private T[] data;
的数据字段已经这样做了所以我想使用data = (T[]) new Object[10];
的数据字段而不是新的T[ ] data
.But我接受此错误消息。我能做什么?
只需将注释和初始化移动到声明即可。它不依赖于构造函数中的任何内容。实际上其他两个变量也是如此。然后你可以删除构造函数。不要编写您不必编写的代码。
public class Set<T> {
@SuppressWarnings("unchecked")
private T[] data = (T[]) new Object[10];
private int used = 0;
private int capacity = 1024;
//constructor removed
public int empty(){
//...
你cannot use annotations within a method body。如果要忽略警告,请将注释移到方法声明之前:
@SuppressWarnings("unchecked")
public Set()
{
used = 0;
capacity = 1024;
data = (T[]) new Object[10];
}