我正在尝试修复forbiddenapis报告的错误。我有那条线:

paramMap.put(Config.TITLEBOOST.toUpperCase(), titleBoost);


因此,它像往常一样被报告为错误。我已经尝试过了:

paramMap.put(Config.TITLEBOOST.toUpperCase(Locale.getDefault()), titleBoost);


然后:

paramMap.put(Config.TITLEBOOST.toUpperCase(Locale.ROOT), titleBoost);


还有那个:

paramMap.put(Config.TITLEBOOST.toUpperCase(Locale.ENGLISH), titleBoost);


但是,它们都没有解决错误:


  [forbiddenapis]禁止的方法调用:
  java.lang.String#toUpperCase()[使用默认语言环境]


我想念什么?

最佳答案

仔细检查您正在分析的字节码实际上是您的最新生成输出,并且您正在查看的同一行forbiddenapis是:)。在我看来,您的源代码/字节码/分析不同步-the relevant rule不应在String.toUpperCase(Locale)上标记错误。

免责声明:我自己没有使用forbiddenapis ---我根据repo和发现的blog post编写了此答案。

07-24 20:42