为什么 @SuppressWarnings 会破坏我的代码?

发布于 2024-07-30 20:09:24 字数 632 浏览 3 评论 0原文

从上一个问题中得到了这个想法。

如何在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);
             ^

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

Got this idea from this previous question.

How to create a generic array in Java?

Anyway, my code is like this:

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

}

I deleted the unnecessary stuff. This compiles fine when the suppress directive is commented out. When I uncomment it, I get

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

Any ideas? why would this be happening?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖伴 2024-08-06 20:09:29

我已经很长时间没有使用 java 了,但是你会把它放在方法上,而不是仅仅放在方法内部的某个地方,对吧?

Long time no java for me, but you'd put that on the method, not just inside it somewhere, right?

病毒体 2024-08-06 20:09:29

您不能在那里添加注释。 它必须位于 public 关键字之前。 而且您还输错了注释名称:将 SuppressWarnings 更改为 SuppressWarnings

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

You cannot put an annotation there. It must go before the public keyword. And you've mistyped the annotation name as well: change SuppresWarnings to SuppressWarnings.

EDIT: If you were using an IDE like Eclipse, you would typically use the auto-correction feature to insert the annotation. Naturally, it would be inserted in the right place and correctly spelled.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文