A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/811 below:

[java] AvoidFinalLocalVariable reasonings · Issue #811 · pmd/pmd · GitHub

Affects PMD Version:

6.0.0

Rule:

AvoidFinalLocalVariable

Violation:

<file name="/Users/nik/tmp/lint-rules/lint-rules-android-lint/src/main/java/com/vanniktech/lintrules/android/SuperfluousDeclarationDetector.java">
<violation beginline="26" endline="26" begincolumn="5" endcolumn="117" rule="AvoidFinalLocalVariable" ruleset="Code Style" package="com.vanniktech.lintrules.android" class="SuperfluousDeclarationDetector" method="visitAttribute" variable="isToolsAttribute" externalInfoUrl="https://pmd.github.io/pmd-6.0.0/pmd_rules_java_codestyle.html#avoidfinallocalvariable" priority="3">
Avoid using final local variables, turn them into fields
</violation>

Description:

isToolsAttribute is getting flagged here but I see no reason why I should make this a field. What's the reasoning behind this here?

Code Sample demonstrating the issue:

package com.vanniktech.lintrules.android;

import com.android.annotations.NonNull;
import com.android.tools.lint.detector.api.Context;
import com.android.tools.lint.detector.api.Issue;
import com.android.tools.lint.detector.api.LayoutDetector;
import com.android.tools.lint.detector.api.XmlContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;

public abstract class SuperfluousDeclarationDetector extends LayoutDetector {
  private Map<Element, List<String>> values = new HashMap<>();

  @Override public void beforeCheckFile(final Context context) {
    values = new HashMap<>();
  }

  @Override public final void visitAttribute(@NonNull final XmlContext context, @NonNull final Attr attribute) {
    final Element ownerElement = attribute.getOwnerElement();
    final boolean isToolsAttribute = "http://schemas.android.com/tools".equalsIgnoreCase(attribute.getNamespaceURI());

    if (!isToolsAttribute) {
      final List<String> valuesForElement = values.get(ownerElement);

      if (valuesForElement != null) {
        valuesForElement.add(attribute.getValue());
      } else {
        final List<String> list = new ArrayList<>();
        list.add(attribute.getValue());
        values.put(ownerElement, list);
      }
    }
  }

Running PMD through: [Gradle]


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4