[ ] . ? |
, , , , . .
, , . Spring. Java 8, IDE IntelliJ IDEA 2017.1 Duplicate Detector 1.1.
, . , , . , , , . , , .
:
, . , - . , .
, , , . , . "Redundancy vs dependencies: which is worse?".
, , , . , , . .
, . , , .
: PMD, CCFinder, Deckard, CloneDR, Duplicate finder (maven plugin), .
, . . , , , . , IntelliJ IDEA (PMD Duplicate Detector).
. , . , Duplicate Detector, . , , 3-4 , IntelliJ IDEA.
Duplicate Detector:
, . , . , . , , - .
Spring. IntelliJ IDEA Duplicate Detector.
IntelliJ IDEA Duplicate Detector , . , Refactor
(Alt + Enter
).
. 4
9
, . . , . , , .
void setVariableNameOrType(String name, Consumer setName, Consumer> setType) {
if (isVariableName(name)) {
setName.accept(name);
}
else {
try {
setType.accept(ClassUtils.forName(name, getAspectClassLoader()));
}
catch (Throwable ex) {
throw new IllegalArgumentException("Class name '" + name +
"' is neither a valid argument name nor the fully-qualified " +
"name of a Java type on the classpath. Root cause: " + ex);
}
}
}
void setThrowingNameNoCheck(String name) {
setVariableNameOrType(name, variableName -> this.throwingName = name, type -> this.discoveredThrowingType = type);
}
. , else
. , , .
Class