Java 发现';UR'-变量'的异常;城市';(行';XX';-&';YY';)

Java 发现';UR'-变量'的异常;城市';(行';XX';-&';YY';),java,Java,关于如何修复“UR”异常的小问题 关于这段非常简单的代码: private final Environment environment; private final Map<String, Foo> partnerConfiguration; @Value("something") private List<String> goodCities; @PostConstruct public

关于如何修复“UR”异常的小问题

关于这段非常简单的代码:

 private final Environment          environment;
    private final Map<String, Foo> partnerConfiguration;
    @Value("something")
    private List<String> goodCities;


    @PostConstruct
    public void setup() {
        for (final String city : goodCities) {
            final String   nameAndCountry = environment.getProperty(PROPERTY_PREFIX + city);
            final String[] nameAndCountrySplit  = Objects.requireNonNullElse(nameAndCountry, "").split(";");
            final String   name        = nameAndCountrySplit[0];
            final String   country   = nameAndCountrySplit[1];
            partnerConfiguration.put(city, new Foo(name, country));
        }
    }
我尝试使用它的函数版本,通过创建子方法进行重构,更改变量名,但没有成功

我知道静态分析工具只是工具,但我对如何修复这个“异常”非常感兴趣

谢谢你

您的代码非常好,是linter工具误解了java构造,现在抛出了不相关的警告

停止使用这个工具。它是未维护的,因此,它不再理解任何具有“现代”特性的java代码,而且这甚至不是一种现代语言构造(它是在PMD维护的最后几天)

还有许多其他java linter工具。见鬼,大多数IDE都已经有了一套不错的套件


注意:你的问题没有提到“pmd”这个词,也没有标记为“pmd”,所以我猜。你应该更新你的问题。下次你这样问的时候,请注意那些阅读你问题的人没有水晶球,也不知道你在运行什么样的设置。如果此警告不是由PMD打印出来的,而是由其他内容打印出来的,则此答案可能没有那么有用。

什么是“UR”异常?请对答案进行投票,因为我现在已经清楚它是关于什么的。但只是问一下,即使知道“UR”-异常标志也没有意义,真的没有办法解决问题吗?没有办法,而且事实上,如此简单的事情已经导致PMD感到困惑,以及您打算编写lambda代码,PMD将完全跳过和/或难以置信地感到困惑,非常清楚地表明,您必须尽快停止使用PMD。
   public void setup() {
        for (final String city : goodCities) {
            final String   nameAndCountry = environment.getProperty(PROPERTY_PREFIX + city);