2009-08-13 60 views
1

从上一个问题中得到了这个想法。为什么@SuppressWarnings会破坏我的代码?

How to create a generic array in Java?

不管怎样,我的代码是这样的:

public class Slice<E> 
{ 
    private E[] data; 
    public Slice(Class<E> elementType, int size) 
    { 
     //@SuppresWarnings({"unchecked"}) 
     data = (E[])Array.newInstance(elementType, size); 
    } 

} 

我删除了不必要的东西。当压制指令被注释掉时,这种编译很好。当我取消注释时,我得到

Error: <identifier> expected  
     data = (E[])Array.newInstance(elementType, size); 
      ^

任何想法?为什么会发生这种情况?

回答

6

你不能在那里注释。它必须位于public关键字之前。并且您错误地输入了注释名称:将SuppresWarnings更改为SuppressWarnings

编辑:如果你使用像Eclipse的IDE,您通常使用自动校正功能来插入注释。当然,它会插入正确的位置并正确拼写。

+0

刚看到,在我的评论的权利后,我发布了它。谢谢 :) – Derrick 2009-08-13 02:33:54

0

很久没有java我,但你把那方法,不只是里面的地方,对不对?

+0

在另一个线程中,他们使用你所建议的方法。我只是去尝试,现在,得到这个错误: 找不到符号 符号:类SuppresWarnings 位置:类切片 \t @SuppresWarnings({“未登记”}) ^ – Derrick 2009-08-13 02:29:53

+0

呀,所以你需要找到该类所在的包并将其导入。 – 2009-08-13 02:32:34

+0

@silky:没有......他将只需要正确拼写注解类名:-) – 2009-08-13 02:48:50

相关问题