【问题标题】:What yellow import lines mean in Android StudioAndroid Studio 中的黄色导入线是什么意思
【发布时间】:2016-06-21 07:03:35
【问题描述】:

我是 android 和 android studio 的新手。我认识到一些导入线的颜色不同。这是什么意思?这些线路和其他线路有什么区别?

【问题讨论】:

  • 注释导入的这些行
  • 这些是注解的导入,例如@NonNull/@Nullable/@StringDef/@IntDef...等。有关注释的更多信息,请查看tools.android.com/tech-docs/support-annotations
  • 投反对票的原因是什么?
  • @Ashkan Mobayen Khiabani 在下面看到我的答案。

标签: android android-studio import


【解决方案1】:

这意味着它是annotation class import

Java Annotations 允许我们add metadata information into our source code,尽管它们不是程序本身的一部分。注释已从 JDK 5 添加到 java。注解对其注解的代码的运行没有直接影响(即不影响程序的执行)

注解有什么用。

1) 对编译器的说明: Java 中有三个内置注解(@Deprecated@Override@SuppressWarnings)可用于向编译器提供某些指令编译器。例如,@override 注释用于指示编译器被注释的方法正在覆盖该方法。更多关于这些内置注释的示例将在本文的下一部分讨论。

2) 编译时指导:注解可以为编译器提供编译时指令,软件构建工具可以进一步使用这些指令来生成代码、XML 文件等。

3) 运行时指令:我们可以定义在运行时可用的注解,我们可以使用java reflection 访问这些注解,并可用于在运行时向程序发出指令。

【讨论】:

    【解决方案2】:

    注释是关于程序的元数据类型,不属于它的一部分...

    注释是元数据的一种形式,提供不属于程序本身的程序的数据。注解对其注解的代码的操作没有直接影响。

    它包含以下信息:

    1. 编译器信息
    2. 编译时和部署
    3. 运行时处理

    Source

    在 Java8 中有改进的注释,例如:

    1. @NonNull:编译器可以确定代码路径可能收到空值的情况,而无需调试 NullPointerException。
    2. @ReadOnly:编译器将标记任何更改对象的尝试。这类似于 Collections.unmodifiableList,但更通用并在编译时验证。
    3. @Regex:提供编译时验证,确认打算用作正则表达式的字符串是格式正确的正则表达式。
    4. @Tainted 和@Untainted:不应该一起使用的身份数据类型,例如系统命令中使用的远程用户输入,或日志流中的敏感信息。
    5. @m:度量单位确保用于度量对象的数字被正确使用和比较,或经过适当的单位转换。

    Check document for explanation

    你也可以在Wikipedia看这篇漂亮的文章

    【讨论】:

      【解决方案3】:

      表示这是一个注解类导入。

      来自 javadocs:

      注释是一种元数据形式,提供有关程序的数据,该程序是 不是程序本身的一部分。注释没有直接影响 他们注释的代码的操作。

      查看注释上的developer's guide

      还可以查看this Android 中可用注释的摘要。

      【讨论】:

        【解决方案4】:

        当你尝试导入注解时

        喜欢@StringDef@IntDef@Nullable@NonNull

        那时这些进口将是黄色的。

        【讨论】:

          猜你喜欢
          • 2015-03-06
          • 1970-01-01
          • 2021-09-06
          • 2012-08-04
          • 1970-01-01
          • 2015-04-30
          • 1970-01-01
          • 2019-03-22
          • 1970-01-01
          相关资源
          最近更新 更多