这是我的错误消息:
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];
的数据字段而不是新的{{1}但是我接受了这个错误信息。我该怎么办?
答案 0 :(得分:1)
只需将注释和初始化移动到声明中即可。它并不依赖于构造函数中的任何东西。实际上其他两个变量也是如此。然后你可以删除构造函数。不要写你不必写的代码。
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(){
//...
答案 1 :(得分:0)
你cannot use annotations within a method body。如果要忽略警告,请将注释移到方法声明之前:
@SuppressWarnings("unchecked")
public Set()
{
used = 0;
capacity = 1024;
data = (T[]) new Object[10];
}