【问题标题】:errors when trying extract package name from Class variable尝试从类变量中提取包名时出错
【发布时间】:2016-10-17 21:15:12
【问题描述】:

在我当前的项目中,我有这个代码:

    for(Annotation annotation : field.getAnnotations()) {
      String package = annotation.annotationType().getPackage().getName();
      if(package.equals("com.loja.annotations.input_type"))
        input.setAttribute("type", annotation.annotationType().getSimpleName());
    }

当我尝试构建项目时,由于此错误,此代码导致编译失败:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project store: Compilation failure: Compilation failure:
[ERROR] /c:/Users/Kleber Mota/Documents/GitHub/app/src/main/java/com/loja/thymeleaf/processor/form/InputProcessor.java:[37,11] not a statement
[ERROR] /c:/Users/Kleber Mota/Documents/GitHub/app/src/main/java/com/loja/thymeleaf/processor/form/InputProcessor.java:[37,17] ';' expected
[ERROR] /c:/Users/Kleber Mota/Documents/GitHub/app/src/main/java/com/loja/thymeleaf/processor/form/InputProcessor.java:[38,14] illegal start of expression
[ERROR] /c:/Users/Kleber Mota/Documents/GitHub/app/src/main/java/com/loja/thymeleaf/processor/form/InputProcessor.java:[38,21] illegal start of expression
[ERROR] /c:/Users/Kleber Mota/Documents/GitHub/app/src/main/java/com/loja/thymeleaf/processor/form/InputProcessor.java:[38,28] ';' expected
[ERROR] /c:/Users/Kleber Mota/Documents/GitHub/app/src/main/java/com/loja/thymeleaf/processor/form/InputProcessor.java:[38,22] variable declaration not allowed here

任何人都可以看到这里出了什么问题?

第 37 行是:String package = annotation.annotationType().getPackage().getName();,第 38 行是if(package.equals("com.loja.annotations.input_type"))

【问题讨论】:

  • 您不能将变量命名为package,因为这是一个保留关键字。

标签: java class reflection package


【解决方案1】:

您可以在第 37 行之后(在 if 之前)打印出您的“包”变量。 我编写并运行了类似的代码,它对我有用。我在我的 api 包中创建了一个自定义注释,第 37 行返回了“api”。

【讨论】:

  • 我更改了变量的名称并为我工作。我刚刚意识到package 是Java 中的保留字。我认为这是问题所在。
  • oo 是的 :) 我也改变了它,但认为你的 IDE 已经警告过你了。
【解决方案2】:

你可以试试这个..

annotation.annotationType().getName();

【讨论】:

  • 但我需要注解类的包,而不是注解名称。
猜你喜欢
  • 2020-05-08
  • 2021-12-19
  • 1970-01-01
  • 2013-08-28
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多