A RetroSearch Logo

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

Search Query:

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

[java] UnnecessaryFullyQualifiedName false positive with enum constant · Issue #1790 · pmd/pmd · GitHub

Affects PMD Version: 6.4.0+

Rule:
UnnecessaryFullyQualifiedName

Description:
A false positive in UnnecessaryFullyQualifiedName. If the code has an enum "Float" defined, java.lang.Float cannot be referenced anymore without fully qualifying it. PMD warns about the usage of java.lang.Float.floatToIntBits because it doesn't understand this.

Code Sample demonstrating the issue:

public enum DataType {
  	Float(Float.class) {
		@Override
		public String toString(final Object value) {
			if (value == null) {
				return null;
			}
			final int bits = java.lang.Float.floatToIntBits((java.lang.Float) value); // false-positive
                        return "";
		}
	};
	private Class<?> dataClass;

	private DataType(Class<?> dataClass) {
		this.dataClass = dataClass;
	}

	@Override
	public Class<?> getDataClass() {
		return dataClass;
	}
}

Running PMD through: Maven

Output:
[INFO] PMD Failure: com.DataType:100 Rule:UnnecessaryFullyQualifiedName Priority:4 Unnecessary use of fully qualified name 'java.lang.Float' due to existing implicit import 'java.lang.*'.

Based on release notes and searching issues the false positive was introduced in one of these:
https://github.com/pmd/pmd/pull/1141/files
https://github.com/pmd/pmd/pull/1220/files


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