【问题标题】:In-line annotations give syntax errors内联注释给出语法错误
【发布时间】:2012-03-22 12:08:55
【问题描述】:

我很喜欢 ADT rev 17 的新 Lint API 检查,但新的 API 正确性检查让我很困惑。我有以下代码行:

listView.setOverScrollMode(OVER_SCROLL_NEVER);

Lint 正在报告这一行:

调用需要 API 级别 9(当前最低为 4)

According to the documentation,我应该可以在行上方添加注释,如下所示:

@TargetApi(9)
listView.setOverScrollMode(OVER_SCROLL_NEVER);

然而,这在 Java 1.6 中会出现语法错误:

令牌语法错误,结构错位

【问题讨论】:

  • 这可以通过将有问题的行提取到函数中并在其中添加注释来相当容易地避免,但文档特别建议注释是内联的。

标签: android android-lint


【解决方案1】:

这在 Java 中是不允许的(直到/如果添加 JSR 308);您只能注释类、方法、字段、参数和变量声明。文档中显示的是后者。但是,对于像 api 检查这样的基于字节码的检查,您可能需要将其放在方法或类(或匿名/内部类)上。 lint 中这些警告的添加注释快速修复应该做正确的事情。

【讨论】:

  • 啊,变量声明。这就是我所忽略的。感谢您指出!
  • tools.android.com/recent?offset=10 的文档(即 ADT17 时的博文)中提及的一个想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
  • 2016-05-19
  • 2017-01-28
  • 2022-01-12
  • 1970-01-01
相关资源
最近更新 更多