You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/06/19 13:30:47 UTC

[commons-lang] branch master updated: Replace @code with @link for class references

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 2e7194516 Replace @code with @link for class references
2e7194516 is described below

commit 2e71945163b08326a64b7264466069dd3a83b0de
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jun 19 09:30:36 2022 -0400

    Replace @code with @link for class references
---
 .../org/apache/commons/lang3/AnnotationUtils.java  |   4 +-
 .../java/org/apache/commons/lang3/ArrayUtils.java  |  93 +++--
 .../java/org/apache/commons/lang3/BitField.java    |   4 +-
 .../org/apache/commons/lang3/BooleanUtils.java     |  30 +-
 .../java/org/apache/commons/lang3/CharRange.java   |  14 +-
 .../apache/commons/lang3/CharSequenceUtils.java    |  30 +-
 .../java/org/apache/commons/lang3/CharSet.java     |   6 +-
 .../org/apache/commons/lang3/CharSetUtils.java     |   2 +-
 .../java/org/apache/commons/lang3/CharUtils.java   |   2 +-
 .../org/apache/commons/lang3/ClassPathUtils.java   |   2 +-
 .../java/org/apache/commons/lang3/ClassUtils.java  |  96 ++---
 .../java/org/apache/commons/lang3/EnumUtils.java   |   6 +-
 .../java/org/apache/commons/lang3/Functions.java   |  56 +--
 .../java/org/apache/commons/lang3/LocaleUtils.java |   2 +-
 .../commons/lang3/NotImplementedException.java     |   4 +-
 .../java/org/apache/commons/lang3/ObjectUtils.java |  52 +--
 .../apache/commons/lang3/RandomStringUtils.java    |   4 +-
 .../java/org/apache/commons/lang3/RandomUtils.java |   2 +-
 src/main/java/org/apache/commons/lang3/Range.java  |  20 +-
 .../java/org/apache/commons/lang3/RegExUtils.java  |   4 +-
 .../commons/lang3/SerializationException.java      |  16 +-
 .../apache/commons/lang3/SerializationUtils.java   |  30 +-
 .../java/org/apache/commons/lang3/Streams.java     |  20 +-
 .../apache/commons/lang3/StringEscapeUtils.java    |  74 ++--
 .../java/org/apache/commons/lang3/StringUtils.java |  76 ++--
 .../java/org/apache/commons/lang3/SystemUtils.java |  14 +-
 .../java/org/apache/commons/lang3/ThreadUtils.java |   8 +-
 .../java/org/apache/commons/lang3/Validate.java    |  12 +-
 .../commons/lang3/builder/CompareToBuilder.java    |  34 +-
 .../org/apache/commons/lang3/builder/Diff.java     |  12 +-
 .../apache/commons/lang3/builder/DiffBuilder.java  |  17 +-
 .../apache/commons/lang3/builder/DiffResult.java   |  30 +-
 .../org/apache/commons/lang3/builder/Diffable.java |   6 +-
 .../commons/lang3/builder/EqualsBuilder.java       |  36 +-
 .../commons/lang3/builder/HashCodeBuilder.java     |  18 +-
 .../lang3/builder/RecursiveToStringStyle.java      |   4 +-
 .../lang3/builder/ReflectionDiffBuilder.java       |   4 +-
 .../lang3/builder/ReflectionToStringBuilder.java   |  28 +-
 .../lang3/builder/StandardToStringStyle.java       |  28 +-
 .../commons/lang3/builder/ToStringBuilder.java     |  50 +--
 .../commons/lang3/builder/ToStringStyle.java       | 250 +++++------
 .../commons/lang3/compare/ComparableUtils.java     |   4 +-
 .../lang3/concurrent/AbstractCircuitBreaker.java   |   4 +-
 .../lang3/concurrent/AtomicInitializer.java        |  12 +-
 .../lang3/concurrent/AtomicSafeInitializer.java    |   6 +-
 .../lang3/concurrent/BackgroundInitializer.java    |  82 ++--
 .../lang3/concurrent/BasicThreadFactory.java       |  74 ++--
 .../concurrent/CallableBackgroundInitializer.java  |  40 +-
 .../commons/lang3/concurrent/CircuitBreaker.java   |   2 +-
 .../lang3/concurrent/CircuitBreakingException.java |   8 +-
 .../lang3/concurrent/ConcurrentException.java      |  19 +-
 .../lang3/concurrent/ConcurrentInitializer.java    |   4 +-
 .../concurrent/ConcurrentRuntimeException.java     |   4 +-
 .../commons/lang3/concurrent/ConcurrentUtils.java  |  58 +--
 .../lang3/concurrent/ConstantInitializer.java      |   4 +-
 .../lang3/concurrent/EventCountCircuitBreaker.java |  59 +--
 .../commons/lang3/concurrent/FutureTasks.java      |   2 +-
 .../commons/lang3/concurrent/LazyInitializer.java  |   4 +-
 .../concurrent/MultiBackgroundInitializer.java     |  86 ++--
 .../lang3/concurrent/ThresholdCircuitBreaker.java  |   2 +-
 .../commons/lang3/concurrent/TimedSemaphore.java   |  18 +-
 .../commons/lang3/concurrent/package-info.java     | 463 +++++++++++++--------
 .../org/apache/commons/lang3/event/EventUtils.java |   2 +-
 .../commons/lang3/exception/ExceptionUtils.java    |  54 +--
 .../commons/lang3/exception/package-info.java      |   2 +-
 .../commons/lang3/function/BooleanConsumer.java    |   4 +-
 .../apache/commons/lang3/function/Failable.java    |  38 +-
 .../commons/lang3/function/FailableBiConsumer.java |   6 +-
 .../commons/lang3/function/FailableBiFunction.java |   6 +-
 .../lang3/function/FailableBiPredicate.java        |  10 +-
 .../lang3/function/FailableBooleanSupplier.java    |   2 +-
 .../commons/lang3/function/FailableCallable.java   |   2 +-
 .../commons/lang3/function/FailableConsumer.java   |   6 +-
 .../function/FailableDoubleBinaryOperator.java     |   2 +-
 .../lang3/function/FailableDoubleConsumer.java     |   6 +-
 .../lang3/function/FailableDoubleFunction.java     |   2 +-
 .../lang3/function/FailableDoublePredicate.java    |  10 +-
 .../lang3/function/FailableDoubleSupplier.java     |   2 +-
 .../function/FailableDoubleToIntFunction.java      |   2 +-
 .../function/FailableDoubleToLongFunction.java     |   2 +-
 .../function/FailableDoubleUnaryOperator.java      |  10 +-
 .../commons/lang3/function/FailableFunction.java   |  10 +-
 .../lang3/function/FailableIntBinaryOperator.java  |   2 +-
 .../lang3/function/FailableIntConsumer.java        |   6 +-
 .../lang3/function/FailableIntFunction.java        |   2 +-
 .../lang3/function/FailableIntPredicate.java       |  10 +-
 .../lang3/function/FailableIntSupplier.java        |   2 +-
 .../function/FailableIntToDoubleFunction.java      |   2 +-
 .../lang3/function/FailableIntToLongFunction.java  |   2 +-
 .../lang3/function/FailableIntUnaryOperator.java   |  10 +-
 .../lang3/function/FailableLongBinaryOperator.java |   2 +-
 .../lang3/function/FailableLongConsumer.java       |   6 +-
 .../lang3/function/FailableLongFunction.java       |   2 +-
 .../lang3/function/FailableLongPredicate.java      |  10 +-
 .../lang3/function/FailableLongSupplier.java       |   2 +-
 .../function/FailableLongToDoubleFunction.java     |   2 +-
 .../lang3/function/FailableLongToIntFunction.java  |   2 +-
 .../lang3/function/FailableLongUnaryOperator.java  |  10 +-
 .../lang3/function/FailableObjDoubleConsumer.java  |   2 +-
 .../lang3/function/FailableObjIntConsumer.java     |   2 +-
 .../lang3/function/FailableObjLongConsumer.java    |   2 +-
 .../commons/lang3/function/FailablePredicate.java  |  10 +-
 .../lang3/function/FailableShortSupplier.java      |   2 +-
 .../commons/lang3/function/FailableSupplier.java   |   2 +-
 .../lang3/function/FailableToDoubleBiFunction.java |   2 +-
 .../lang3/function/FailableToDoubleFunction.java   |   2 +-
 .../lang3/function/FailableToIntBiFunction.java    |   2 +-
 .../lang3/function/FailableToIntFunction.java      |   2 +-
 .../lang3/function/FailableToLongBiFunction.java   |   2 +-
 .../lang3/function/FailableToLongFunction.java     |   2 +-
 .../apache/commons/lang3/function/TriConsumer.java |   6 +-
 .../org/apache/commons/lang3/math/Fraction.java    |  64 +--
 .../org/apache/commons/lang3/math/NumberUtils.java | 168 ++++----
 .../org/apache/commons/lang3/mutable/Mutable.java  |   2 +-
 .../commons/lang3/mutable/MutableBoolean.java      |   2 +-
 .../apache/commons/lang3/mutable/MutableByte.java  |   2 +-
 .../commons/lang3/mutable/MutableDouble.java       |   4 +-
 .../apache/commons/lang3/mutable/MutableFloat.java |   4 +-
 .../apache/commons/lang3/mutable/MutableInt.java   |   2 +-
 .../apache/commons/lang3/mutable/MutableLong.java  |   2 +-
 .../commons/lang3/mutable/MutableObject.java       |   4 +-
 .../apache/commons/lang3/mutable/MutableShort.java |   2 +-
 .../apache/commons/lang3/reflect/MethodUtils.java  |  16 +-
 .../apache/commons/lang3/reflect/TypeLiteral.java  |   2 +-
 .../apache/commons/lang3/reflect/TypeUtils.java    |  40 +-
 .../apache/commons/lang3/stream/IntStreams.java    |   4 +-
 .../org/apache/commons/lang3/stream/Streams.java   |  20 +-
 .../commons/lang3/text/ExtendedMessageFormat.java  |  12 +-
 .../apache/commons/lang3/text/FormatFactory.java   |   2 +-
 .../commons/lang3/text/FormattableUtils.java       |  34 +-
 .../org/apache/commons/lang3/text/StrBuilder.java  |   8 +-
 .../org/apache/commons/lang3/text/StrMatcher.java  |   4 +-
 .../apache/commons/lang3/text/StrSubstitutor.java  |   2 +-
 .../apache/commons/lang3/text/StrTokenizer.java    |   7 +-
 .../org/apache/commons/lang3/text/WordUtils.java   |   2 +-
 .../text/translate/CharSequenceTranslator.java     |   4 +-
 .../lang3/text/translate/JavaUnicodeEscaper.java   |  18 +-
 .../lang3/text/translate/NumericEntityEscaper.java |  20 +-
 .../lang3/text/translate/UnicodeEscaper.java       |  20 +-
 .../org/apache/commons/lang3/time/DateParser.java  |  14 +-
 .../org/apache/commons/lang3/time/DatePrinter.java |  27 +-
 .../org/apache/commons/lang3/time/DateUtils.java   | 154 +++----
 .../commons/lang3/time/DurationFormatUtils.java    |   5 +-
 .../apache/commons/lang3/time/DurationUtils.java   |   2 +-
 .../apache/commons/lang3/time/FastDateFormat.java  |  36 +-
 .../apache/commons/lang3/time/FastDateParser.java  |   5 +-
 .../apache/commons/lang3/time/FastDatePrinter.java |  47 ++-
 .../org/apache/commons/lang3/time/FormatCache.java |   2 +-
 .../org/apache/commons/lang3/time/StopWatch.java   |   2 +-
 .../apache/commons/lang3/tuple/ImmutablePair.java  |   4 +-
 .../commons/lang3/tuple/ImmutableTriple.java       |   2 +-
 .../apache/commons/lang3/tuple/MutablePair.java    |   2 +-
 .../apache/commons/lang3/tuple/MutableTriple.java  |   2 +-
 .../java/org/apache/commons/lang3/tuple/Pair.java  |   2 +-
 .../org/apache/commons/lang3/tuple/Triple.java     |   2 +-
 .../apache/commons/lang3/util/FluentBitSet.java    |  54 +--
 156 files changed, 1696 insertions(+), 1580 deletions(-)

diff --git a/src/main/java/org/apache/commons/lang3/AnnotationUtils.java b/src/main/java/org/apache/commons/lang3/AnnotationUtils.java
index 6beb7ca8e..a56ee6e07 100644
--- a/src/main/java/org/apache/commons/lang3/AnnotationUtils.java
+++ b/src/main/java/org/apache/commons/lang3/AnnotationUtils.java
@@ -91,7 +91,7 @@ public class AnnotationUtils {
     };
 
     /**
-     * <p>{@code AnnotationUtils} instances should NOT be constructed in
+     * <p>{@link AnnotationUtils} instances should NOT be constructed in
      * standard programming. Instead, the class should be used statically.</p>
      *
      * <p>This constructor is public to permit tools that require a JavaBean
@@ -149,7 +149,7 @@ public class AnnotationUtils {
      * @param a the Annotation for a hash code calculation is desired, not
      * {@code null}
      * @return the calculated hash code
-     * @throws RuntimeException if an {@code Exception} is encountered during
+     * @throws RuntimeException if an {@link Exception} is encountered during
      * annotation member access
      * @throws IllegalStateException if an annotation method invocation returns
      * {@code null}
diff --git a/src/main/java/org/apache/commons/lang3/ArrayUtils.java b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
index 033a2367c..a098b0d5b 100644
--- a/src/main/java/org/apache/commons/lang3/ArrayUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Type;
 import java.util.Arrays;
 import java.util.BitSet;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Random;
@@ -60,7 +61,7 @@ public class ArrayUtils {
     public static final boolean[] EMPTY_BOOLEAN_ARRAY = {};
 
     /**
-     * An empty immutable {@code Boolean} array.
+     * An empty immutable {@link Boolean} array.
      */
     public static final Boolean[] EMPTY_BOOLEAN_OBJECT_ARRAY = {};
 
@@ -70,7 +71,7 @@ public class ArrayUtils {
     public static final byte[] EMPTY_BYTE_ARRAY = {};
 
     /**
-     * An empty immutable {@code Byte} array.
+     * An empty immutable {@link Byte} array.
      */
     public static final Byte[] EMPTY_BYTE_OBJECT_ARRAY = {};
 
@@ -80,12 +81,12 @@ public class ArrayUtils {
     public static final char[] EMPTY_CHAR_ARRAY = {};
 
     /**
-     * An empty immutable {@code Character} array.
+     * An empty immutable {@link Character} array.
      */
     public static final Character[] EMPTY_CHARACTER_OBJECT_ARRAY = {};
 
     /**
-     * An empty immutable {@code Class} array.
+     * An empty immutable {@link Class} array.
      */
     public static final Class<?>[] EMPTY_CLASS_ARRAY = {};
 
@@ -95,12 +96,12 @@ public class ArrayUtils {
     public static final double[] EMPTY_DOUBLE_ARRAY = {};
 
     /**
-     * An empty immutable {@code Double} array.
+     * An empty immutable {@link Double} array.
      */
     public static final Double[] EMPTY_DOUBLE_OBJECT_ARRAY = {};
 
     /**
-     * An empty immutable {@code Field} array.
+     * An empty immutable {@link Field} array.
      *
      * @since 3.10
      */
@@ -112,7 +113,7 @@ public class ArrayUtils {
     public static final float[] EMPTY_FLOAT_ARRAY = {};
 
     /**
-     * An empty immutable {@code Float} array.
+     * An empty immutable {@link Float} array.
      */
     public static final Float[] EMPTY_FLOAT_OBJECT_ARRAY = {};
 
@@ -122,7 +123,7 @@ public class ArrayUtils {
     public static final int[] EMPTY_INT_ARRAY = {};
 
     /**
-     * An empty immutable {@code Integer} array.
+     * An empty immutable {@link Integer} array.
      */
     public static final Integer[] EMPTY_INTEGER_OBJECT_ARRAY = {};
 
@@ -132,19 +133,19 @@ public class ArrayUtils {
     public static final long[] EMPTY_LONG_ARRAY = {};
 
     /**
-     * An empty immutable {@code Long} array.
+     * An empty immutable {@link Long} array.
      */
     public static final Long[] EMPTY_LONG_OBJECT_ARRAY = {};
 
     /**
-     * An empty immutable {@code Method} array.
+     * An empty immutable {@link Method} array.
      *
      * @since 3.10
      */
     public static final Method[] EMPTY_METHOD_ARRAY = {};
 
     /**
-     * An empty immutable {@code Object} array.
+     * An empty immutable {@link Object} array.
      */
     public static final Object[] EMPTY_OBJECT_ARRAY = {};
 
@@ -154,24 +155,24 @@ public class ArrayUtils {
     public static final short[] EMPTY_SHORT_ARRAY = {};
 
     /**
-     * An empty immutable {@code Short} array.
+     * An empty immutable {@link Short} array.
      */
     public static final Short[] EMPTY_SHORT_OBJECT_ARRAY = {};
 
     /**
-     * An empty immutable {@code String} array.
+     * An empty immutable {@link String} array.
      */
     public static final String[] EMPTY_STRING_ARRAY = {};
 
     /**
-     * An empty immutable {@code Throwable} array.
+     * An empty immutable {@link Throwable} array.
      *
      * @since 3.10
      */
     public static final Throwable[] EMPTY_THROWABLE_ARRAY = {};
 
     /**
-     * An empty immutable {@code Type} array.
+     * An empty immutable {@link Type} array.
      *
      * @since 3.10
      */
@@ -1742,7 +1743,7 @@ public class ArrayUtils {
 
     /**
      * Returns the length of the specified array.
-     * This method can deal with {@code Object} arrays and with primitive arrays.
+     * This method can deal with {@link Object} arrays and with primitive arrays.
      * <p>
      * If the input array is {@code null}, {@code 0} is returned.
      * </p>
@@ -3775,7 +3776,7 @@ public class ArrayUtils {
      * {@code compareTo} method.
      *
      * @param array the array to check
-     * @param <T> the datatype of the array to check, it must implement {@code Comparable}
+     * @param <T> the datatype of the array to check, it must implement {@link Comparable}
      * @return whether the array is sorted
      * @since 3.4
      */
@@ -3784,10 +3785,10 @@ public class ArrayUtils {
     }
 
     /**
-     * This method checks whether the provided array is sorted according to the provided {@code Comparator}.
+     * This method checks whether the provided array is sorted according to the provided {@link Comparator}.
      *
      * @param array the array to check
-     * @param comparator the {@code Comparator} to compare over
+     * @param comparator the {@link Comparator} to compare over
      * @param <T> the datatype of the array
      * @return whether the array is sorted
      * @since 3.4
@@ -8343,7 +8344,7 @@ public class ArrayUtils {
      * <p>
      * The component type of the subarray is always the same as
      * that of the input array. Thus, if the input is an array of type
-     * {@code Date}, the following usage is envisaged:
+     * {@link Date}, the following usage is envisaged:
      * </p>
      * <pre>
      * Date[] someDates = (Date[]) ArrayUtils.subarray(allDates, 2, 5);
@@ -9083,7 +9084,7 @@ public class ArrayUtils {
      *
      * @param array  an array whose elements are either a {@link java.util.Map.Entry} or
      *  an Array containing at least two elements, may be {@code null}
-     * @return a {@code Map} that was created from the array
+     * @return a {@link Map} that was created from the array
      * @throws IllegalArgumentException  if one element of this Array is
      *  itself an Array containing less then two elements
      * @throws IllegalArgumentException  if the array contains elements other
@@ -9122,7 +9123,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array  a {@code boolean} array
-     * @return a {@code Boolean} array, {@code null} if null array input
+     * @return a {@link Boolean} array, {@code null} if null array input
      */
     public static Boolean[] toObject(final boolean[] array) {
         if (array == null) {
@@ -9141,7 +9142,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array  a {@code byte} array
-     * @return a {@code Byte} array, {@code null} if null array input
+     * @return a {@link Byte} array, {@code null} if null array input
      */
     public static Byte[] toObject(final byte[] array) {
         if (array == null) {
@@ -9159,7 +9160,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array a {@code char} array
-     * @return a {@code Character} array, {@code null} if null array input
+     * @return a {@link Character} array, {@code null} if null array input
      */
     public static Character[] toObject(final char[] array) {
         if (array == null) {
@@ -9177,7 +9178,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array  a {@code double} array
-     * @return a {@code Double} array, {@code null} if null array input
+     * @return a {@link Double} array, {@code null} if null array input
      */
     public static Double[] toObject(final double[] array) {
         if (array == null) {
@@ -9195,7 +9196,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array  a {@code float} array
-     * @return a {@code Float} array, {@code null} if null array input
+     * @return a {@link Float} array, {@code null} if null array input
      */
     public static Float[] toObject(final float[] array) {
         if (array == null) {
@@ -9213,7 +9214,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array  an {@code int} array
-     * @return an {@code Integer} array, {@code null} if null array input
+     * @return an {@link Integer} array, {@code null} if null array input
      */
     public static Integer[] toObject(final int[] array) {
         if (array == null) {
@@ -9231,7 +9232,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array  a {@code long} array
-     * @return a {@code Long} array, {@code null} if null array input
+     * @return a {@link Long} array, {@code null} if null array input
      */
     public static Long[] toObject(final long[] array) {
         if (array == null) {
@@ -9249,7 +9250,7 @@ public class ArrayUtils {
      * <p>This method returns {@code null} for a {@code null} input array.</p>
      *
      * @param array  a {@code short} array
-     * @return a {@code Short} array, {@code null} if null array input
+     * @return a {@link Short} array, {@code null} if null array input
      */
     public static Short[] toObject(final short[] array) {
         if (array == null) {
@@ -9270,7 +9271,7 @@ public class ArrayUtils {
      * Null array elements map to false, like {@code Boolean.parseBoolean(null)} and its callers return false.
      * </p>
      *
-     * @param array a {@code Boolean} array, may be {@code null}
+     * @param array a {@link Boolean} array, may be {@code null}
      * @return a {@code boolean} array, {@code null} if null array input
      */
     public static boolean[] toPrimitive(final Boolean[] array) {
@@ -9283,7 +9284,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Boolean} array, may be {@code null}
+     * @param array  a {@link Boolean} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return a {@code boolean} array, {@code null} if null array input
      */
@@ -9308,7 +9309,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Byte} array, may be {@code null}
+     * @param array  a {@link Byte} array, may be {@code null}
      * @return a {@code byte} array, {@code null} if null array input
      * @throws NullPointerException if an array element is {@code null}
      */
@@ -9332,7 +9333,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Byte} array, may be {@code null}
+     * @param array  a {@link Byte} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return a {@code byte} array, {@code null} if null array input
      */
@@ -9357,7 +9358,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Character} array, may be {@code null}
+     * @param array  a {@link Character} array, may be {@code null}
      * @return a {@code char} array, {@code null} if null array input
      * @throws NullPointerException if an array element is {@code null}
      */
@@ -9381,7 +9382,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Character} array, may be {@code null}
+     * @param array  a {@link Character} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return a {@code char} array, {@code null} if null array input
      */
@@ -9406,7 +9407,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Double} array, may be {@code null}
+     * @param array  a {@link Double} array, may be {@code null}
      * @return a {@code double} array, {@code null} if null array input
      * @throws NullPointerException if an array element is {@code null}
      */
@@ -9430,7 +9431,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Double} array, may be {@code null}
+     * @param array  a {@link Double} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return a {@code double} array, {@code null} if null array input
      */
@@ -9455,7 +9456,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Float} array, may be {@code null}
+     * @param array  a {@link Float} array, may be {@code null}
      * @return a {@code float} array, {@code null} if null array input
      * @throws NullPointerException if an array element is {@code null}
      */
@@ -9479,7 +9480,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Float} array, may be {@code null}
+     * @param array  a {@link Float} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return a {@code float} array, {@code null} if null array input
      */
@@ -9504,7 +9505,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Integer} array, may be {@code null}
+     * @param array  a {@link Integer} array, may be {@code null}
      * @return an {@code int} array, {@code null} if null array input
      * @throws NullPointerException if an array element is {@code null}
      */
@@ -9528,7 +9529,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Integer} array, may be {@code null}
+     * @param array  a {@link Integer} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return an {@code int} array, {@code null} if null array input
      */
@@ -9553,7 +9554,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Long} array, may be {@code null}
+     * @param array  a {@link Long} array, may be {@code null}
      * @return a {@code long} array, {@code null} if null array input
      * @throws NullPointerException if an array element is {@code null}
      */
@@ -9577,7 +9578,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Long} array, may be {@code null}
+     * @param array  a {@link Long} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return a {@code long} array, {@code null} if null array input
      */
@@ -9645,7 +9646,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Short} array, may be {@code null}
+     * @param array  a {@link Short} array, may be {@code null}
      * @return a {@code byte} array, {@code null} if null array input
      * @throws NullPointerException if an array element is {@code null}
      */
@@ -9669,7 +9670,7 @@ public class ArrayUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array  a {@code Short} array, may be {@code null}
+     * @param array  a {@link Short} array, may be {@code null}
      * @param valueForNull  the value to insert if {@code null} found
      * @return a {@code byte} array, {@code null} if null array input
      */
@@ -9763,7 +9764,7 @@ public class ArrayUtils {
      *
      * @param array the Object[] to be processed, may be null
      * @param valueForNullElements the value to insert if {@code null} is found
-     * @return a {@code String} array, {@code null} if null array input
+     * @return a {@link String} array, {@code null} if null array input
      * @since 3.6
      */
     public static String[] toStringArray(final Object[] array, final String valueForNullElements) {
diff --git a/src/main/java/org/apache/commons/lang3/BitField.java b/src/main/java/org/apache/commons/lang3/BitField.java
index 3f9b4fac4..fa64df55a 100644
--- a/src/main/java/org/apache/commons/lang3/BitField.java
+++ b/src/main/java/org/apache/commons/lang3/BitField.java
@@ -21,7 +21,7 @@ package org.apache.commons.lang3;
  * used to store a flag or data within an {@code int}, {@code short} or
  * {@code byte}.</p>
  *
- * <p>Each {@code BitField} is constructed with a mask value, which indicates
+ * <p>Each {@link BitField} is constructed with a mask value, which indicates
  * the bits that will be used to store and retrieve the data for that field.
  * For instance, the mask {@code 0xFF} indicates the least-significant byte
  * should be used to store the data.</p>
@@ -43,7 +43,7 @@ package org.apache.commons.lang3;
  *    BitField isMetallic = new BitField(0x1000000);
  *</pre>
  *
- * <p>Using these {@code BitField} instances, a paint instruction can be
+ * <p>Using these {@link BitField} instances, a paint instruction can be
  * encoded into an integer:</p>
  *
  *<pre>
diff --git a/src/main/java/org/apache/commons/lang3/BooleanUtils.java b/src/main/java/org/apache/commons/lang3/BooleanUtils.java
index 34e699df1..a33ff893b 100644
--- a/src/main/java/org/apache/commons/lang3/BooleanUtils.java
+++ b/src/main/java/org/apache/commons/lang3/BooleanUtils.java
@@ -114,7 +114,7 @@ public class BooleanUtils {
      * Null array elements map to false, like {@code Boolean.parseBoolean(null)} and its callers return false.
      * </p>
      *
-     * @param array  an array of {@code Boolean}s
+     * @param array  an array of {@link Boolean}s
      * @return the result of the logical 'and' operation. That is {@code false}
      * if any of the parameters is {@code false} and {@code true} otherwise.
      * @throws NullPointerException if {@code array} is {@code null}
@@ -153,7 +153,7 @@ public class BooleanUtils {
     }
 
     /**
-     * <p>Checks if a {@code Boolean} value is {@code false},
+     * <p>Checks if a {@link Boolean} value is {@code false},
      * handling {@code null} by returning {@code false}.</p>
      *
      * <pre>
@@ -171,7 +171,7 @@ public class BooleanUtils {
     }
 
     /**
-     * <p>Checks if a {@code Boolean} value is <i>not</i> {@code false},
+     * <p>Checks if a {@link Boolean} value is <i>not</i> {@code false},
      * handling {@code null} by returning {@code true}.</p>
      *
      * <pre>
@@ -189,7 +189,7 @@ public class BooleanUtils {
     }
 
     /**
-     * <p>Checks if a {@code Boolean} value is <i>not</i> {@code true},
+     * <p>Checks if a {@link Boolean} value is <i>not</i> {@code true},
      * handling {@code null} by returning {@code true}.</p>
      *
      * <pre>
@@ -207,7 +207,7 @@ public class BooleanUtils {
     }
 
     /**
-     * <p>Checks if a {@code Boolean} value is {@code true},
+     * <p>Checks if a {@link Boolean} value is {@code true},
      * handling {@code null} by returning {@code false}.</p>
      *
      * <pre>
@@ -229,7 +229,7 @@ public class BooleanUtils {
      *
      * <p>If {@code null} is passed in, {@code null} will be returned.</p>
      *
-     * <p>NOTE: This returns {@code null} and will throw a {@code NullPointerException}
+     * <p>NOTE: This returns {@code null} and will throw a {@link NullPointerException}
      * if unboxed to a boolean. </p>
      *
      * <pre>
@@ -292,7 +292,7 @@ public class BooleanUtils {
      * Null array elements map to false, like {@code Boolean.parseBoolean(null)} and its callers return false.
      * </p>
      *
-     * @param array  an array of {@code Boolean}s
+     * @param array  an array of {@link Boolean}s
      * @return {@code true} if any of the arguments is {@code true}, and it returns {@code false} otherwise.
      * @throws NullPointerException if {@code array} is {@code null}
      * @throws IllegalArgumentException if {@code array} is empty.
@@ -361,7 +361,7 @@ public class BooleanUtils {
      *   BooleanUtils.toBoolean(2, 2, 0) = true
      * </pre>
      *
-     * @param value  the {@code Integer} to convert
+     * @param value  the {@link Integer} to convert
      * @param trueValue  the value to match for {@code true}
      * @param falseValue  the value to match for {@code false}
      * @return {@code true} or {@code false}
@@ -520,7 +520,7 @@ public class BooleanUtils {
     /**
      * <p>Converts an int to a Boolean specifying the conversion values.</p>
      *
-     * <p>NOTE: This method may return {@code null} and may throw a {@code NullPointerException}
+     * <p>NOTE: This method may return {@code null} and may throw a {@link NullPointerException}
      * if unboxed to a {@code boolean}.</p>
      *
      * <p>The checks are done first for the {@code trueValue}, then for the {@code falseValue} and
@@ -561,7 +561,7 @@ public class BooleanUtils {
      *
      * <p>{@code null} will be converted to {@code null}.</p>
      *
-     * <p>NOTE: This method may return {@code null} and may throw a {@code NullPointerException}
+     * <p>NOTE: This method may return {@code null} and may throw a {@link NullPointerException}
      * if unboxed to a {@code boolean}.</p>
      *
      * <pre>
@@ -584,7 +584,7 @@ public class BooleanUtils {
     /**
      * <p>Converts an Integer to a Boolean specifying the conversion values.</p>
      *
-     * <p>NOTE: This method may return {@code null} and may throw a {@code NullPointerException}
+     * <p>NOTE: This method may return {@code null} and may throw a {@link NullPointerException}
      * if unboxed to a {@code boolean}.</p>
      *
      * <p>The checks are done first for the {@code trueValue}, then for the {@code falseValue} and
@@ -636,7 +636,7 @@ public class BooleanUtils {
      * or {@code '0'} (case insensitive) will return {@code false}.
      * Otherwise, {@code null} is returned.</p>
      *
-     * <p>NOTE: This method may return {@code null} and may throw a {@code NullPointerException}
+     * <p>NOTE: This method may return {@code null} and may throw a {@link NullPointerException}
      * if unboxed to a {@code boolean}.</p>
      *
      * <pre>
@@ -759,7 +759,7 @@ public class BooleanUtils {
     /**
      * <p>Converts a String to a Boolean throwing an exception if no match.</p>
      *
-     * <p>NOTE: This method may return {@code null} and may throw a {@code NullPointerException}
+     * <p>NOTE: This method may return {@code null} and may throw a {@link NullPointerException}
      * if unboxed to a {@code boolean}.</p>
      *
      * <pre>
@@ -1112,7 +1112,7 @@ public class BooleanUtils {
      * Null array elements map to false, like {@code Boolean.parseBoolean(null)} and its callers return false.
      * </p>
      *
-     * @param array  an array of {@code Boolean}s
+     * @param array  an array of {@link Boolean}s
      * @return the result of the xor operations
      * @throws NullPointerException if {@code array} is {@code null}
      * @throws IllegalArgumentException if {@code array} is empty.
@@ -1123,7 +1123,7 @@ public class BooleanUtils {
     }
 
     /**
-     * <p>{@code BooleanUtils} instances should NOT be constructed in standard programming.
+     * <p>{@link BooleanUtils} instances should NOT be constructed in standard programming.
      * Instead, the class should be used as {@code BooleanUtils.negate(true);}.</p>
      *
      * <p>This constructor is public to permit tools that require a JavaBean instance
diff --git a/src/main/java/org/apache/commons/lang3/CharRange.java b/src/main/java/org/apache/commons/lang3/CharRange.java
index eae5196bb..e543d2f2e 100644
--- a/src/main/java/org/apache/commons/lang3/CharRange.java
+++ b/src/main/java/org/apache/commons/lang3/CharRange.java
@@ -53,7 +53,7 @@ final class CharRange implements Iterable<Character>, Serializable {
     static final CharRange[] EMPTY_ARRAY = {};
 
     /**
-     * <p>Constructs a {@code CharRange} over a set of characters,
+     * <p>Constructs a {@link CharRange} over a set of characters,
      * optionally negating the range.</p>
      *
      * <p>A negated range includes everything except that defined by the
@@ -79,7 +79,7 @@ final class CharRange implements Iterable<Character>, Serializable {
     }
 
     /**
-     * <p>Constructs a {@code CharRange} over a single character.</p>
+     * <p>Constructs a {@link CharRange} over a single character.</p>
      *
      * @param ch  only character in this range
      * @return the new CharRange object
@@ -90,7 +90,7 @@ final class CharRange implements Iterable<Character>, Serializable {
     }
 
     /**
-     * <p>Constructs a negated {@code CharRange} over a single character.</p>
+     * <p>Constructs a negated {@link CharRange} over a single character.</p>
      *
      * <p>A negated range includes everything except that defined by the
      * single character.</p>
@@ -104,7 +104,7 @@ final class CharRange implements Iterable<Character>, Serializable {
     }
 
     /**
-     * <p>Constructs a {@code CharRange} over a set of characters.</p>
+     * <p>Constructs a {@link CharRange} over a set of characters.</p>
      *
      * <p>If start and end are in the wrong order, they are reversed.
      * Thus {@code a-e} is the same as {@code e-a}.</p>
@@ -119,7 +119,7 @@ final class CharRange implements Iterable<Character>, Serializable {
     }
 
     /**
-     * <p>Constructs a negated {@code CharRange} over a set of characters.</p>
+     * <p>Constructs a negated {@link CharRange} over a set of characters.</p>
      *
      * <p>A negated range includes everything except that defined by the
      * start and end characters.</p>
@@ -156,7 +156,7 @@ final class CharRange implements Iterable<Character>, Serializable {
     }
 
     /**
-     * <p>Is this {@code CharRange} negated.</p>
+     * <p>Is this {@link CharRange} negated.</p>
      *
      * <p>A negated range includes everything except that defined by the
      * start and end characters.</p>
@@ -337,7 +337,7 @@ final class CharRange implements Iterable<Character>, Serializable {
         /**
          * Returns the next character in the iteration
          *
-         * @return {@code Character} for the next character
+         * @return {@link Character} for the next character
          */
         @Override
         public Character next() {
diff --git a/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java b/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java
index 18a83ac2c..7f7acfc89 100644
--- a/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java
+++ b/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java
@@ -41,8 +41,8 @@ public class CharSequenceUtils {
     /**
      * Used by the indexOf(CharSequence methods) as a green implementation of indexOf.
      *
-     * @param cs the {@code CharSequence} to be processed
-     * @param searchChar the {@code CharSequence} to be searched for
+     * @param cs the {@link CharSequence} to be processed
+     * @param searchChar the {@link CharSequence} to be searched for
      * @param start the start index
      * @return the index where the search sequence was found
      */
@@ -95,7 +95,7 @@ public class CharSequenceUtils {
      * <p>
      * There is no restriction on the value of {@code start}. If it
      * is negative, it has the same effect as if it were zero: the entire
-     * {@code CharSequence} may be searched. If it is greater than
+     * {@link CharSequence} may be searched. If it is greater than
      * the length of {@code cs}, it has the same effect as if it were
      * equal to the length of {@code cs}: {@code -1} is returned.
      * </p>
@@ -103,11 +103,11 @@ public class CharSequenceUtils {
      * (Unicode code units).
      * </p>
      *
-     * @param cs  the {@code CharSequence} to be processed, not null
+     * @param cs  the {@link CharSequence} to be processed, not null
      * @param searchChar  the char to be searched for
      * @param start  the start index, negative starts at the string start
      * @return the index where the search char was found, -1 if not found
-     * @since 3.6 updated to behave more like {@code String}
+     * @since 3.6 updated to behave more like {@link String}
      */
     static int indexOf(final CharSequence cs, final int searchChar, int start) {
         if (cs instanceof String) {
@@ -142,8 +142,8 @@ public class CharSequenceUtils {
     /**
      * Used by the lastIndexOf(CharSequence methods) as a green implementation of lastIndexOf
      *
-     * @param cs the {@code CharSequence} to be processed
-     * @param searchChar the {@code CharSequence} to find
+     * @param cs the {@link CharSequence} to be processed
+     * @param searchChar the {@link CharSequence} to find
      * @param start the start index
      * @return the index where the search sequence was found
      */
@@ -236,11 +236,11 @@ public class CharSequenceUtils {
      * (Unicode code units).
      * </p>
      *
-     * @param cs  the {@code CharSequence} to be processed
+     * @param cs  the {@link CharSequence} to be processed
      * @param searchChar  the char to be searched for
      * @param start  the start index, negative returns -1, beyond length starts at end
      * @return the index where the search char was found, -1 if not found
-     * @since 3.6 updated to behave more like {@code String}
+     * @since 3.6 updated to behave more like {@link String}
      */
     static int lastIndexOf(final CharSequence cs, final int searchChar, int start) {
         if (cs instanceof String) {
@@ -283,10 +283,10 @@ public class CharSequenceUtils {
     /**
      * Green implementation of regionMatches.
      *
-     * @param cs the {@code CharSequence} to be processed
+     * @param cs the {@link CharSequence} to be processed
      * @param ignoreCase whether or not to be case insensitive
      * @param thisStart the index to start on the {@code cs} CharSequence
-     * @param substring the {@code CharSequence} to be looked for
+     * @param substring the {@link CharSequence} to be looked for
      * @param start the index to start on the {@code substring} CharSequence
      * @param length character length of the region
      * @return whether the region matched
@@ -338,10 +338,10 @@ public class CharSequenceUtils {
     }
 
     /**
-     * <p>Returns a new {@code CharSequence} that is a subsequence of this
+     * <p>Returns a new {@link CharSequence} that is a subsequence of this
      * sequence starting with the {@code char} value at the specified index.</p>
      *
-     * <p>This provides the {@code CharSequence} equivalent to {@link String#substring(int)}.
+     * <p>This provides the {@link CharSequence} equivalent to {@link String#substring(int)}.
      * The length (in {@code char}) of the returned sequence is {@code length() - start},
      * so if {@code start == end} then an empty sequence is returned.</p>
      *
@@ -358,7 +358,7 @@ public class CharSequenceUtils {
     /**
      * Converts the given CharSequence to a char[].
      *
-     * @param source the {@code CharSequence} to be processed.
+     * @param source the {@link CharSequence} to be processed.
      * @return the resulting char array, never null.
      * @since 3.11
      */
@@ -378,7 +378,7 @@ public class CharSequenceUtils {
     }
 
     /**
-     * <p>{@code CharSequenceUtils} instances should NOT be constructed in
+     * <p>{@link CharSequenceUtils} instances should NOT be constructed in
      * standard programming.</p>
      *
      * <p>This constructor is public to permit tools that require a JavaBean
diff --git a/src/main/java/org/apache/commons/lang3/CharSet.java b/src/main/java/org/apache/commons/lang3/CharSet.java
index 98447cc62..3eb9abbec 100644
--- a/src/main/java/org/apache/commons/lang3/CharSet.java
+++ b/src/main/java/org/apache/commons/lang3/CharSet.java
@@ -178,7 +178,7 @@ public class CharSet implements Serializable {
     }
 
     /**
-     * <p>Add a set definition string to the {@code CharSet}.</p>
+     * <p>Add a set definition string to the {@link CharSet}.</p>
      *
      * @param str  set definition string
      */
@@ -224,7 +224,7 @@ public class CharSet implements Serializable {
     }
 
     /**
-     * <p>Does the {@code CharSet} contain the specified
+     * <p>Does the {@link CharSet} contain the specified
      * character {@code ch}.</p>
      *
      * @param ch  the character to check for
@@ -243,7 +243,7 @@ public class CharSet implements Serializable {
 
     // Basics
     /**
-     * <p>Compares two {@code CharSet} objects, returning true if they represent
+     * <p>Compares two {@link CharSet} objects, returning true if they represent
      * exactly the same set of characters defined in the same way.</p>
      *
      * <p>The two sets {@code abc} and {@code a-c} are <i>not</i>
diff --git a/src/main/java/org/apache/commons/lang3/CharSetUtils.java b/src/main/java/org/apache/commons/lang3/CharSetUtils.java
index 3ce06acb5..30d83b7ff 100644
--- a/src/main/java/org/apache/commons/lang3/CharSetUtils.java
+++ b/src/main/java/org/apache/commons/lang3/CharSetUtils.java
@@ -17,7 +17,7 @@
 package org.apache.commons.lang3;
 
 /**
- * <p>Operations on {@code CharSet} instances.</p>
+ * <p>Operations on {@link CharSet} instances.</p>
  *
  * <p>This class handles {@code null} input gracefully.
  * An exception will not be thrown for a {@code null} input.
diff --git a/src/main/java/org/apache/commons/lang3/CharUtils.java b/src/main/java/org/apache/commons/lang3/CharUtils.java
index 14f072b18..c1703a49e 100644
--- a/src/main/java/org/apache/commons/lang3/CharUtils.java
+++ b/src/main/java/org/apache/commons/lang3/CharUtils.java
@@ -64,7 +64,7 @@ public class CharUtils {
     }
 
     /**
-     * <p>{@code CharUtils} instances should NOT be constructed in standard programming.
+     * <p>{@link CharUtils} instances should NOT be constructed in standard programming.
      * Instead, the class should be used as {@code CharUtils.toString('c');}.</p>
      *
      * <p>This constructor is public to permit tools that require a JavaBean instance
diff --git a/src/main/java/org/apache/commons/lang3/ClassPathUtils.java b/src/main/java/org/apache/commons/lang3/ClassPathUtils.java
index bd58e78ab..b05392d5a 100644
--- a/src/main/java/org/apache/commons/lang3/ClassPathUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ClassPathUtils.java
@@ -27,7 +27,7 @@ package org.apache.commons.lang3;
 public class ClassPathUtils {
 
     /**
-     * <p>{@code ClassPathUtils} instances should NOT be constructed in
+     * <p>{@link ClassPathUtils} instances should NOT be constructed in
      * standard programming. Instead, the class should be used as
      * {@code ClassPathUtils.toFullyQualifiedName(MyClass.class, "MyClass.properties");}.</p>
      *
diff --git a/src/main/java/org/apache/commons/lang3/ClassUtils.java b/src/main/java/org/apache/commons/lang3/ClassUtils.java
index c6083b629..ce4d78370 100644
--- a/src/main/java/org/apache/commons/lang3/ClassUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ClassUtils.java
@@ -88,7 +88,7 @@ public class ClassUtils {
     public static final String INNER_CLASS_SEPARATOR = String.valueOf(INNER_CLASS_SEPARATOR_CHAR);
 
     /**
-     * Maps names of primitives to their corresponding primitive {@code Class}es.
+     * Maps names of primitives to their corresponding primitive {@link Class}es.
      */
     private static final Map<String, Class<?>> namePrimitiveMap = new HashMap<>();
 
@@ -105,7 +105,7 @@ public class ClassUtils {
     }
 
     /**
-     * Maps primitive {@code Class}es to their corresponding wrapper {@code Class}.
+     * Maps primitive {@link Class}es to their corresponding wrapper {@link Class}.
      */
     private static final Map<Class<?>, Class<?>> primitiveWrapperMap = new HashMap<>();
 
@@ -122,7 +122,7 @@ public class ClassUtils {
     }
 
     /**
-     * Maps wrapper {@code Class}es to their corresponding primitive types.
+     * Maps wrapper {@link Class}es to their corresponding primitive types.
      */
     private static final Map<Class<?>, Class<?>> wrapperPrimitiveMap = new HashMap<>();
 
@@ -177,16 +177,16 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Given a {@code List} of {@code Class} objects, this method converts them into class names.
+     * Given a {@link List} of {@link Class} objects, this method converts them into class names.
      * </p>
      *
      * <p>
-     * A new {@code List} is returned. {@code null} objects will be copied into the returned list as {@code null}.
+     * A new {@link List} is returned. {@code null} objects will be copied into the returned list as {@code null}.
      * </p>
      *
      * @param classes the classes to change
-     * @return a {@code List} of class names corresponding to the Class objects, {@code null} if null input
-     * @throws ClassCastException if {@code classes} contains a non-{@code Class} entry
+     * @return a {@link List} of class names corresponding to the Class objects, {@code null} if null input
+     * @throws ClassCastException if {@code classes} contains a non-{@link Class} entry
      */
     public static List<String> convertClassesToClassNames(final List<Class<?>> classes) {
         return classes == null ? null : classes.stream().map(e -> getName(e, null)).collect(Collectors.toList());
@@ -194,16 +194,16 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Given a {@code List} of class names, this method converts them into classes.
+     * Given a {@link List} of class names, this method converts them into classes.
      * </p>
      *
      * <p>
-     * A new {@code List} is returned. If the class name cannot be found, {@code null} is stored in the {@code List}. If the
-     * class name in the {@code List} is {@code null}, {@code null} is stored in the output {@code List}.
+     * A new {@link List} is returned. If the class name cannot be found, {@code null} is stored in the {@link List}. If the
+     * class name in the {@link List} is {@code null}, {@code null} is stored in the output {@link List}.
      * </p>
      *
      * @param classNames the classNames to change
-     * @return a {@code List} of Class objects corresponding to the class names, {@code null} if null input
+     * @return a {@link List} of Class objects corresponding to the class names, {@code null} if null input
      * @throws ClassCastException if classNames contains a non String entry
      */
     public static List<Class<?>> convertClassNamesToClasses(final List<String> classNames) {
@@ -223,7 +223,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the abbreviated name of a {@code Class}.
+     * Gets the abbreviated name of a {@link Class}.
      * </p>
      *
      * @param cls the class to get the abbreviated name for, may be {@code null}
@@ -242,7 +242,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the abbreviated class name from a {@code String}.
+     * Gets the abbreviated class name from a {@link String}.
      * </p>
      *
      * <p>
@@ -350,7 +350,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets a {@code List} of all interfaces implemented by the given class and its superclasses.
+     * Gets a {@link List} of all interfaces implemented by the given class and its superclasses.
      * </p>
      *
      * <p>
@@ -360,7 +360,7 @@ public class ClassUtils {
      * </p>
      *
      * @param cls the class to look up, may be {@code null}
-     * @return the {@code List} of interfaces in order, {@code null} if null input
+     * @return the {@link List} of interfaces in order, {@code null} if null input
      */
     public static List<Class<?>> getAllInterfaces(final Class<?> cls) {
         if (cls == null) {
@@ -377,7 +377,7 @@ public class ClassUtils {
      * Gets the interfaces for the specified class.
      *
      * @param cls the class to look up, may be {@code null}
-     * @param interfacesFound the {@code Set} of interfaces for the class
+     * @param interfacesFound the {@link Set} of interfaces for the class
      */
     private static void getAllInterfaces(Class<?> cls, final HashSet<Class<?>> interfacesFound) {
         while (cls != null) {
@@ -395,11 +395,11 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets a {@code List} of superclasses for the given class.
+     * Gets a {@link List} of superclasses for the given class.
      * </p>
      *
      * @param cls the class to look up, may be {@code null}
-     * @return the {@code List} of superclasses in order going up from this one {@code null} if null input
+     * @return the {@link List} of superclasses in order going up from this one {@code null} if null input
      */
     public static List<Class<?>> getAllSuperclasses(final Class<?> cls) {
         if (cls == null) {
@@ -416,7 +416,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the canonical class name for a {@code Class}.
+     * Gets the canonical class name for a {@link Class}.
      * </p>
      *
      * @param cls the class for which to get the canonical class name; may be null
@@ -430,7 +430,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the canonical name for a {@code Class}.
+     * Gets the canonical name for a {@link Class}.
      * </p>
      *
      * @param cls the class for which to get the canonical class name; may be null
@@ -449,7 +449,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the canonical name for an {@code Object}.
+     * Gets the canonical name for an {@link Object}.
      * </p>
      *
      * @param object the object for which to get the canonical class name; may be null
@@ -463,7 +463,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the canonical name for an {@code Object}.
+     * Gets the canonical name for an {@link Object}.
      * </p>
      *
      * @param object the object for which to get the canonical class name; may be null
@@ -686,7 +686,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the package name from the canonical name of a {@code Class}.
+     * Gets the package name from the canonical name of a {@link Class}.
      * </p>
      *
      * @param cls the class to get the package name for, may be {@code null}.
@@ -702,7 +702,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the package name from the class name of an {@code Object}.
+     * Gets the package name from the class name of an {@link Object}.
      * </p>
      *
      * @param object the class to get the package name for, may be null
@@ -739,7 +739,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the package name of a {@code Class}.
+     * Gets the package name of a {@link Class}.
      * </p>
      *
      * @param cls the class to get the package name for, may be {@code null}.
@@ -754,7 +754,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the package name of an {@code Object}.
+     * Gets the package name of an {@link Object}.
      * </p>
      *
      * @param object the class to get the package name for, may be null
@@ -770,7 +770,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the package name from a {@code String}.
+     * Gets the package name from a {@link String}.
      * </p>
      *
      * <p>
@@ -856,7 +856,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the canonical name minus the package name from a {@code Class}.
+     * Gets the canonical name minus the package name from a {@link Class}.
      * </p>
      *
      * @param cls the class for which to get the short canonical class name; may be null
@@ -872,7 +872,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the canonical name minus the package name for an {@code Object}.
+     * Gets the canonical name minus the package name for an {@link Object}.
      * </p>
      *
      * @param object the class to get the short name for, may be null
@@ -989,7 +989,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Gets the class name minus the package name from a {@code Class}.
+     * Gets the class name minus the package name from a {@link Class}.
      * </p>
      *
      * <p>
@@ -1130,7 +1130,7 @@ public class ClassUtils {
      * </p>
      *
      * <p>
-     * It is to note that this method is overloaded and in case the argument {@code object} is a {@code Class} object then
+     * It is to note that this method is overloaded and in case the argument {@code object} is a {@link Class} object then
      * the {@link #getSimpleName(Class)} will be invoked. If this is a significant possibility then the caller should check
      * this case and call {@code
      * getSimpleName(Class.class)} or just simply use the string literal {@code "Class"}, which is the result of the method
@@ -1254,7 +1254,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Checks if one {@code Class} can be assigned to a variable of another {@code Class}.
+     * Checks if one {@link Class} can be assigned to a variable of another {@link Class}.
      * </p>
      *
      * <p>
@@ -1268,13 +1268,13 @@ public class ClassUtils {
      * </p>
      *
      * <p>
-     * {@code Null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
+     * {@code null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
      * and the toClass is non-primitive.
      * </p>
      *
      * <p>
-     * Specifically, this method tests whether the type represented by the specified {@code Class} parameter can be
-     * converted to the type represented by this {@code Class} object via an identity conversion widening primitive or
+     * Specifically, this method tests whether the type represented by the specified {@link Class} parameter can be
+     * converted to the type represented by this {@link Class} object via an identity conversion widening primitive or
      * widening reference conversion. See <em><a href="http://docs.oracle.com/javase/specs/">The Java Language
      * Specification</a></em>, sections 5.1.1, 5.1.2 and 5.1.4 for details.
      * </p>
@@ -1295,7 +1295,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Checks if one {@code Class} can be assigned to a variable of another {@code Class}.
+     * Checks if one {@link Class} can be assigned to a variable of another {@link Class}.
      * </p>
      *
      * <p>
@@ -1309,13 +1309,13 @@ public class ClassUtils {
      * </p>
      *
      * <p>
-     * {@code Null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
+     * {@code null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
      * and the toClass is non-primitive.
      * </p>
      *
      * <p>
-     * Specifically, this method tests whether the type represented by the specified {@code Class} parameter can be
-     * converted to the type represented by this {@code Class} object via an identity conversion widening primitive or
+     * Specifically, this method tests whether the type represented by the specified {@link Class} parameter can be
+     * converted to the type represented by this {@link Class} object via an identity conversion widening primitive or
      * widening reference conversion. See <em><a href="http://docs.oracle.com/javase/specs/">The Java Language
      * Specification</a></em>, sections 5.1.1, 5.1.2 and 5.1.4 for details.
      * </p>
@@ -1405,13 +1405,13 @@ public class ClassUtils {
      * </p>
      *
      * <p>
-     * {@code Null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
+     * {@code null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
      * and the toClass is non-primitive.
      * </p>
      *
      * <p>
-     * Specifically, this method tests whether the type represented by the specified {@code Class} parameter can be
-     * converted to the type represented by this {@code Class} object via an identity conversion widening primitive or
+     * Specifically, this method tests whether the type represented by the specified {@link Class} parameter can be
+     * converted to the type represented by this {@link Class} object via an identity conversion widening primitive or
      * widening reference conversion. See <em><a href="http://docs.oracle.com/javase/specs/">The Java Language
      * Specification</a></em>, sections 5.1.1, 5.1.2 and 5.1.4 for details.
      * </p>
@@ -1452,13 +1452,13 @@ public class ClassUtils {
      * </p>
      *
      * <p>
-     * {@code Null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
+     * {@code null} may be assigned to any reference type. This method will return {@code true} if {@code null} is passed in
      * and the toClass is non-primitive.
      * </p>
      *
      * <p>
-     * Specifically, this method tests whether the type represented by the specified {@code Class} parameter can be
-     * converted to the type represented by this {@code Class} object via an identity conversion widening primitive or
+     * Specifically, this method tests whether the type represented by the specified {@link Class} parameter can be
+     * converted to the type represented by this {@link Class} object via an identity conversion widening primitive or
      * widening reference conversion. See <em><a href="http://docs.oracle.com/javase/specs/">The Java Language
      * Specification</a></em>, sections 5.1.1, 5.1.2 and 5.1.4 for details.
      * </p>
@@ -1613,7 +1613,7 @@ public class ClassUtils {
 
     /**
      * <p>
-     * Converts an array of {@code Object} in to an array of {@code Class} objects. If any of these objects is null, a null
+     * Converts an array of {@link Object} in to an array of {@link Class} objects. If any of these objects is null, a null
      * element will be inserted into the array.
      * </p>
      *
@@ -1621,8 +1621,8 @@ public class ClassUtils {
      * This method returns {@code null} for a {@code null} input array.
      * </p>
      *
-     * @param array an {@code Object} array
-     * @return a {@code Class} array, {@code null} if null array input
+     * @param array an {@link Object} array
+     * @return a {@link Class} array, {@code null} if null array input
      * @since 2.4
      */
     public static Class<?>[] toClass(final Object... array) {
diff --git a/src/main/java/org/apache/commons/lang3/EnumUtils.java b/src/main/java/org/apache/commons/lang3/EnumUtils.java
index 6ec30604a..2b3d030af 100644
--- a/src/main/java/org/apache/commons/lang3/EnumUtils.java
+++ b/src/main/java/org/apache/commons/lang3/EnumUtils.java
@@ -261,7 +261,7 @@ public class EnumUtils {
     }
 
     /**
-     * <p>Gets the {@code List} of enums.</p>
+     * <p>Gets the {@link List} of enums.</p>
      *
      * <p>This method is useful when you need a list of enums rather than an array.</p>
      *
@@ -274,7 +274,7 @@ public class EnumUtils {
     }
 
     /**
-     * <p>Gets the {@code Map} of enums by name.</p>
+     * <p>Gets the {@link Map} of enums by name.</p>
      *
      * <p>This method is useful when you need a map of enums by name.</p>
      *
@@ -288,7 +288,7 @@ public class EnumUtils {
 
     /**
      * <p>
-     * Gets the {@code Map} of enums by name.
+     * Gets the {@link Map} of enums by name.
      * </p>
      *
      * <p>
diff --git a/src/main/java/org/apache/commons/lang3/Functions.java b/src/main/java/org/apache/commons/lang3/Functions.java
index 260b32758..657315e5a 100644
--- a/src/main/java/org/apache/commons/lang3/Functions.java
+++ b/src/main/java/org/apache/commons/lang3/Functions.java
@@ -72,7 +72,7 @@ import org.apache.commons.lang3.function.FailableBooleanSupplier;
 public class Functions {
 
     /**
-     * A functional interface like {@link BiConsumer} that declares a {@code Throwable}.
+     * A functional interface like {@link BiConsumer} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -96,7 +96,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link BiFunction} that declares a {@code Throwable}.
+     * A functional interface like {@link BiFunction} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -122,7 +122,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link BiPredicate} that declares a {@code Throwable}.
+     * A functional interface like {@link BiPredicate} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -147,7 +147,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link java.util.concurrent.Callable} that declares a {@code Throwable}.
+     * A functional interface like {@link java.util.concurrent.Callable} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -169,7 +169,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link Consumer} that declares a {@code Throwable}.
+     * A functional interface like {@link Consumer} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -191,7 +191,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link Function} that declares a {@code Throwable}.
+     * A functional interface like {@link Function} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -215,7 +215,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link Predicate} that declares a {@code Throwable}.
+     * A functional interface like {@link Predicate} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -238,7 +238,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link Runnable} that declares a {@code Throwable}.
+     * A functional interface like {@link Runnable} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -258,7 +258,7 @@ public class Functions {
     }
 
     /**
-     * A functional interface like {@link Supplier} that declares a {@code Throwable}.
+     * A functional interface like {@link Supplier} that declares a {@link Throwable}.
      *
      * <p>TODO for 4.0: Move to org.apache.commons.lang3.function.</p>
      *
@@ -342,8 +342,8 @@ public class Functions {
      *
      * @param <O1> the type of the first argument of the consumers
      * @param <O2> the type of the second argument of the consumers
-     * @param consumer a failable {@code BiConsumer}
-     * @return a standard {@code BiConsumer}
+     * @param consumer a failable {@link BiConsumer}
+     * @return a standard {@link BiConsumer}
      * @since 3.10
      */
     public static <O1, O2> BiConsumer<O1, O2> asBiConsumer(final FailableBiConsumer<O1, O2, ?> consumer) {
@@ -356,8 +356,8 @@ public class Functions {
      * @param <O1> the type of the first argument of the input of the functions
      * @param <O2> the type of the second argument of the input of the functions
      * @param <O> the type of the output of the functions
-     * @param function a {@code FailableBiFunction}
-     * @return a standard {@code BiFunction}
+     * @param function a {@link FailableBiFunction}
+     * @return a standard {@link BiFunction}
      * @since 3.10
      */
     public static <O1, O2, O> BiFunction<O1, O2, O> asBiFunction(final FailableBiFunction<O1, O2, O, ?> function) {
@@ -369,8 +369,8 @@ public class Functions {
      *
      * @param <O1> the type of the first argument used by the predicates
      * @param <O2> the type of the second argument used by the predicates
-     * @param predicate a {@code FailableBiPredicate}
-     * @return a standard {@code BiPredicate}
+     * @param predicate a {@link FailableBiPredicate}
+     * @return a standard {@link BiPredicate}
      * @since 3.10
      */
     public static <O1, O2> BiPredicate<O1, O2> asBiPredicate(final FailableBiPredicate<O1, O2, ?> predicate) {
@@ -381,8 +381,8 @@ public class Functions {
      * Converts the given {@link FailableCallable} into a standard {@link Callable}.
      *
      * @param <O> the type used by the callables
-     * @param callable a {@code FailableCallable}
-     * @return a standard {@code Callable}
+     * @param callable a {@link FailableCallable}
+     * @return a standard {@link Callable}
      * @since 3.10
      */
     public static <O> Callable<O> asCallable(final FailableCallable<O, ?> callable) {
@@ -393,8 +393,8 @@ public class Functions {
      * Converts the given {@link FailableConsumer} into a standard {@link Consumer}.
      *
      * @param <I> the type used by the consumers
-     * @param consumer a {@code FailableConsumer}
-     * @return a standard {@code Consumer}
+     * @param consumer a {@link FailableConsumer}
+     * @return a standard {@link Consumer}
      * @since 3.10
      */
     public static <I> Consumer<I> asConsumer(final FailableConsumer<I, ?> consumer) {
@@ -407,7 +407,7 @@ public class Functions {
      * @param <I> the type of the input of the functions
      * @param <O> the type of the output of the functions
      * @param function a {code FailableFunction}
-     * @return a standard {@code Function}
+     * @return a standard {@link Function}
      * @since 3.10
      */
     public static <I, O> Function<I, O> asFunction(final FailableFunction<I, O, ?> function) {
@@ -418,8 +418,8 @@ public class Functions {
      * Converts the given {@link FailablePredicate} into a standard {@link Predicate}.
      *
      * @param <I> the type used by the predicates
-     * @param predicate a {@code FailablePredicate}
-     * @return a standard {@code Predicate}
+     * @param predicate a {@link FailablePredicate}
+     * @return a standard {@link Predicate}
      * @since 3.10
      */
     public static <I> Predicate<I> asPredicate(final FailablePredicate<I, ?> predicate) {
@@ -429,8 +429,8 @@ public class Functions {
     /**
      * Converts the given {@link FailableRunnable} into a standard {@link Runnable}.
      *
-     * @param runnable a {@code FailableRunnable}
-     * @return a standard {@code Runnable}
+     * @param runnable a {@link FailableRunnable}
+     * @return a standard {@link Runnable}
      * @since 3.10
      */
     public static Runnable asRunnable(final FailableRunnable<?> runnable) {
@@ -441,8 +441,8 @@ public class Functions {
      * Converts the given {@link FailableSupplier} into a standard {@link Supplier}.
      *
      * @param <O> the type supplied by the suppliers
-     * @param supplier a {@code FailableSupplier}
-     * @return a standard {@code Supplier}
+     * @param supplier a {@link FailableSupplier}
+     * @return a standard {@link Supplier}
      * @since 3.10
      */
     public static <O> Supplier<O> asSupplier(final FailableSupplier<O, ?> supplier) {
@@ -496,8 +496,8 @@ public class Functions {
     /**
      * <p>
      * Rethrows a {@link Throwable} as an unchecked exception. If the argument is already unchecked, namely a
-     * {@code RuntimeException} or {@code Error} then the argument will be rethrown without modification. If the
-     * exception is {@code IOException} then it will be wrapped into a {@code UncheckedIOException}. In every other
+     * {@link RuntimeException} or {@link Error} then the argument will be rethrown without modification. If the
+     * exception is {@link IOException} then it will be wrapped into a {@link UncheckedIOException}. In every other
      * cases the exception will be wrapped into a {@code
      * UndeclaredThrowableException}
      * </p>
diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index 43e15ee5c..bf492726c 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -344,7 +344,7 @@ public class LocaleUtils {
     }
 
     /**
-     * <p>{@code LocaleUtils} instances should NOT be constructed in standard programming.
+     * <p>{@link LocaleUtils} instances should NOT be constructed in standard programming.
      * Instead, the class should be used as {@code LocaleUtils.toLocale("en_GB");}.</p>
      *
      * <p>This constructor is public to permit tools that require a JavaBean instance
diff --git a/src/main/java/org/apache/commons/lang3/NotImplementedException.java b/src/main/java/org/apache/commons/lang3/NotImplementedException.java
index 2a9f508e2..2b20ca45c 100644
--- a/src/main/java/org/apache/commons/lang3/NotImplementedException.java
+++ b/src/main/java/org/apache/commons/lang3/NotImplementedException.java
@@ -18,10 +18,10 @@ package org.apache.commons.lang3;
 
 /**
  * <p>Thrown to indicate that a block of code has not been implemented.
- * This exception supplements {@code UnsupportedOperationException}
+ * This exception supplements {@link UnsupportedOperationException}
  * by providing a more semantically rich description of the problem.</p>
  *
- * <p>{@code NotImplementedException} represents the case where the
+ * <p>{@link NotImplementedException} represents the case where the
  * author has yet to implement the logic at this point in the program.
  * This can act as an exception based TODO tag. </p>
  *
diff --git a/src/main/java/org/apache/commons/lang3/ObjectUtils.java b/src/main/java/org/apache/commons/lang3/ObjectUtils.java
index feb124ac2..849dda761 100644
--- a/src/main/java/org/apache/commons/lang3/ObjectUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ObjectUtils.java
@@ -22,10 +22,12 @@ import java.lang.reflect.Array;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.time.Duration;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.Map;
 import java.util.Objects;
 import java.util.TreeSet;
@@ -38,7 +40,7 @@ import org.apache.commons.lang3.text.StrBuilder;
 import org.apache.commons.lang3.time.DurationUtils;
 
 /**
- * <p>Operations on {@code Object}.</p>
+ * <p>Operations on {@link Object}.</p>
  *
  * <p>This class tries to handle {@code null} input gracefully.
  * An exception will generally not be thrown for a {@code null} input.
@@ -56,13 +58,13 @@ public class ObjectUtils {
      * <p>Class used as a null placeholder where {@code null}
      * has another meaning.</p>
      *
-     * <p>For example, in a {@code HashMap} the
+     * <p>For example, in a {@link HashMap} the
      * {@link java.util.HashMap#get(java.lang.Object)} method returns
-     * {@code null} if the {@code Map} contains {@code null} or if there is
-     * no matching key. The {@code Null} placeholder can be used to distinguish
+     * {@code null} if the {@link Map} contains {@code null} or if there is
+     * no matching key. The {@code null} placeholder can be used to distinguish
      * between these two cases.</p>
      *
-     * <p>Another example is {@code Hashtable}, where {@code null}
+     * <p>Another example is {@link Hashtable}, where {@code null}
      * cannot be stored.</p>
      */
     public static class Null implements Serializable {
@@ -95,13 +97,13 @@ public class ObjectUtils {
      * <p>Singleton used as a {@code null} placeholder where
      * {@code null} has another meaning.</p>
      *
-     * <p>For example, in a {@code HashMap} the
+     * <p>For example, in a {@link HashMap} the
      * {@link java.util.HashMap#get(java.lang.Object)} method returns
-     * {@code null} if the {@code Map} contains {@code null} or if there
-     * is no matching key. The {@code Null} placeholder can be used to
+     * {@code null} if the {@link Map} contains {@code null} or if there
+     * is no matching key. The {@code null} placeholder can be used to
      * distinguish between these two cases.</p>
      *
-     * <p>Another example is {@code Hashtable}, where {@code null}
+     * <p>Another example is {@link Hashtable}, where {@code null}
      * cannot be stored.</p>
      *
      * <p>This instance is Serializable.</p>
@@ -594,7 +596,7 @@ public class ObjectUtils {
      * </pre>
      *
      * @param <T> the type of the object
-     * @param object  the {@code Object} to test, may be {@code null}
+     * @param object  the {@link Object} to test, may be {@code null}
      * @param defaultValue  the default value to return, may be {@code null}
      * @return {@code object} if it is not {@code null}, defaultValue otherwise
      * TODO Rename to getIfNull in 4.0
@@ -736,7 +738,7 @@ public class ObjectUtils {
      * </pre>
      *
      * @param <T> the type of the object
-     * @param object the {@code Object} to test, may be {@code null}
+     * @param object the {@link Object} to test, may be {@code null}
      * @param defaultSupplier the default value to return, may be {@code null}
      * @return {@code object} if it is not {@code null}, {@code defaultValueSupplier.get()} otherwise
      * @since 3.10
@@ -787,7 +789,7 @@ public class ObjectUtils {
      * <p>This allows a hash code to be rapidly calculated for a number of objects.
      * The hash code for a single object is the <em>not</em> same as {@link #hashCode(Object)}.
      * The hash code for multiple objects is the same as that calculated by an
-     * {@code ArrayList} containing the specified objects.</p>
+     * {@link ArrayList} containing the specified objects.</p>
      *
      * <pre>
      * ObjectUtils.hashCodeMulti()                 = 1
@@ -816,7 +818,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Appends the toString that would be produced by {@code Object}
+     * <p>Appends the toString that would be produced by {@link Object}
      * if a class did not override toString itself. {@code null}
      * will throw a NullPointerException for either of the two parameters. </p>
      *
@@ -853,7 +855,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Gets the toString that would be produced by {@code Object}
+     * <p>Gets the toString that would be produced by {@link Object}
      * if a class did not override toString itself. {@code null}
      * will return {@code null}.</p>
      *
@@ -884,7 +886,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Appends the toString that would be produced by {@code Object}
+     * <p>Appends the toString that would be produced by {@link Object}
      * if a class did not override toString itself. {@code null}
      * will throw a NullPointerException for either of the two parameters. </p>
      *
@@ -912,7 +914,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Appends the toString that would be produced by {@code Object}
+     * <p>Appends the toString that would be produced by {@link Object}
      * if a class did not override toString itself. {@code null}
      * will throw a NullPointerException for either of the two parameters. </p>
      *
@@ -937,7 +939,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Appends the toString that would be produced by {@code Object}
+     * <p>Appends the toString that would be produced by {@link Object}
      * if a class did not override toString itself. {@code null}
      * will throw a NullPointerException for either of the two parameters. </p>
      *
@@ -1014,7 +1016,7 @@ public class ObjectUtils {
      * The following types are supported:
      * <ul>
      * <li>{@link CharSequence}: Considered empty if its length is zero.</li>
-     * <li>{@code Array}: Considered empty if its length is zero.</li>
+     * <li>{@link Array}: Considered empty if its length is zero.</li>
      * <li>{@link Collection}: Considered empty if it has zero elements.</li>
      * <li>{@link Map}: Considered empty if it has zero key-value mappings.</li>
      * </ul>
@@ -1028,7 +1030,7 @@ public class ObjectUtils {
      * ObjectUtils.isEmpty(1234)             = false
      * </pre>
      *
-     * @param object  the {@code Object} to test, may be {@code null}
+     * @param object  the {@link Object} to test, may be {@code null}
      * @return {@code true} if the object has a supported type and is empty or null,
      * {@code false} otherwise
      * @since 3.9
@@ -1058,7 +1060,7 @@ public class ObjectUtils {
      * The following types are supported:
      * <ul>
      * <li>{@link CharSequence}: Considered empty if its length is zero.</li>
-     * <li>{@code Array}: Considered empty if its length is zero.</li>
+     * <li>{@link Array}: Considered empty if its length is zero.</li>
      * <li>{@link Collection}: Considered empty if it has zero elements.</li>
      * <li>{@link Map}: Considered empty if it has zero key-value mappings.</li>
      * </ul>
@@ -1072,7 +1074,7 @@ public class ObjectUtils {
      * ObjectUtils.isNotEmpty(1234)             = true
      * </pre>
      *
-     * @param object  the {@code Object} to test, may be {@code null}
+     * @param object  the {@link Object} to test, may be {@code null}
      * @return {@code true} if the object has an unsupported type or is not empty
      * and not null, {@code false} otherwise
      * @since 3.9
@@ -1298,7 +1300,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Gets the {@code toString} of an {@code Object} returning
+     * <p>Gets the {@code toString} of an {@link Object} returning
      * an empty string ("") if {@code null} input.</p>
      *
      * <pre>
@@ -1323,7 +1325,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Gets the {@code toString} of an {@code Object} returning
+     * <p>Gets the {@code toString} of an {@link Object} returning
      * a specified text if {@code null} input.</p>
      *
      * <pre>
@@ -1349,7 +1351,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>Gets the {@code toString} of an {@code Object} returning
+     * <p>Gets the {@code toString} of an {@link Object} returning
      * a specified text if {@code null} input.</p>
      *
      * <pre>
@@ -1390,7 +1392,7 @@ public class ObjectUtils {
     }
 
     /**
-     * <p>{@code ObjectUtils} instances should NOT be constructed in
+     * <p>{@link ObjectUtils} instances should NOT be constructed in
      * standard programming. Instead, the static methods on the class should
      * be used, such as {@code ObjectUtils.defaultIfNull("a","b");}.</p>
      *
diff --git a/src/main/java/org/apache/commons/lang3/RandomStringUtils.java b/src/main/java/org/apache/commons/lang3/RandomStringUtils.java
index cb3298825..0a57b6e50 100644
--- a/src/main/java/org/apache/commons/lang3/RandomStringUtils.java
+++ b/src/main/java/org/apache/commons/lang3/RandomStringUtils.java
@@ -20,7 +20,7 @@ import java.util.Random;
 import java.util.concurrent.ThreadLocalRandom;
 
 /**
- * <p>Generates random {@code String}s.</p>
+ * <p>Generates random {@link String}s.</p>
  *
  * <p><b>Caveat: Instances of {@link Random}, upon which the implementation of this
  * class relies, are not cryptographically secure.</b></p>
@@ -462,7 +462,7 @@ public class RandomStringUtils {
     }
 
     /**
-     * <p>{@code RandomStringUtils} instances should NOT be constructed in
+     * <p>{@link RandomStringUtils} instances should NOT be constructed in
      * standard programming. Instead, the class should be used as
      * {@code RandomStringUtils.random(5);}.</p>
      *
diff --git a/src/main/java/org/apache/commons/lang3/RandomUtils.java b/src/main/java/org/apache/commons/lang3/RandomUtils.java
index 38fa8dcb4..59591c5df 100644
--- a/src/main/java/org/apache/commons/lang3/RandomUtils.java
+++ b/src/main/java/org/apache/commons/lang3/RandomUtils.java
@@ -238,7 +238,7 @@ public class RandomUtils {
 
     /**
      * <p>
-     * {@code RandomUtils} instances should NOT be constructed in standard
+     * {@link RandomUtils} instances should NOT be constructed in standard
      * programming. Instead, the class should be used as
      * {@code RandomUtils.nextBytes(5);}.
      * </p>
diff --git a/src/main/java/org/apache/commons/lang3/Range.java b/src/main/java/org/apache/commons/lang3/Range.java
index 005bda0b5..02ad4e562 100644
--- a/src/main/java/org/apache/commons/lang3/Range.java
+++ b/src/main/java/org/apache/commons/lang3/Range.java
@@ -22,8 +22,8 @@ import java.util.Comparator;
 /**
  * <p>An immutable range of objects from a minimum to maximum point inclusive.</p>
  *
- * <p>The objects need to either be implementations of {@code Comparable}
- * or you need to supply a {@code Comparator}.</p>
+ * <p>The objects need to either be implementations of {@link Comparable}
+ * or you need to supply a {@link Comparator}.</p>
  *
  * <p>#ThreadSafe# if the objects and comparator are thread-safe.</p>
  *
@@ -70,7 +70,7 @@ public final class Range<T> implements Serializable {
      * @param toInclusive  the second value that defines the edge of the range, inclusive
      * @return the range object, not null
      * @throws IllegalArgumentException if either element is null
-     * @throws ClassCastException if the elements are not {@code Comparable}
+     * @throws ClassCastException if the elements are not {@link Comparable}
      */
     public static <T extends Comparable<? super T>> Range<T> between(final T fromInclusive, final T toInclusive) {
         return between(fromInclusive, toInclusive, null);
@@ -79,7 +79,7 @@ public final class Range<T> implements Serializable {
     /**
      * <p>Obtains a range with the specified minimum and maximum values (both inclusive).</p>
      *
-     * <p>The range uses the specified {@code Comparator} to determine where
+     * <p>The range uses the specified {@link Comparator} to determine where
      * values lie in the range.</p>
      *
      * <p>The arguments may be passed in the order (min,max) or (max,min).
@@ -91,7 +91,7 @@ public final class Range<T> implements Serializable {
      * @param comparator  the comparator to be used, null for natural ordering
      * @return the range object, not null
      * @throws IllegalArgumentException if either element is null
-     * @throws ClassCastException if using natural ordering and the elements are not {@code Comparable}
+     * @throws ClassCastException if using natural ordering and the elements are not {@link Comparable}
      */
     public static <T> Range<T> between(final T fromInclusive, final T toInclusive, final Comparator<T> comparator) {
         return new Range<>(fromInclusive, toInclusive, comparator);
@@ -108,7 +108,7 @@ public final class Range<T> implements Serializable {
      * @param element  the value to use for this range, not null
      * @return the range object, not null
      * @throws IllegalArgumentException if the element is null
-     * @throws ClassCastException if the element is not {@code Comparable}
+     * @throws ClassCastException if the element is not {@link Comparable}
      */
     public static <T extends Comparable<? super T>> Range<T> is(final T element) {
         return between(element, element, null);
@@ -118,7 +118,7 @@ public final class Range<T> implements Serializable {
      * <p>Obtains a range using the specified element as both the minimum
      * and maximum in this range.</p>
      *
-     * <p>The range uses the specified {@code Comparator} to determine where
+     * <p>The range uses the specified {@link Comparator} to determine where
      * values lie in the range.</p>
      *
      * @param <T> the type of the elements in this range
@@ -126,7 +126,7 @@ public final class Range<T> implements Serializable {
      * @param comparator  the comparator to be used, null for natural ordering
      * @return the range object, not null
      * @throws IllegalArgumentException if the element is null
-     * @throws ClassCastException if using natural ordering and the elements are not {@code Comparable}
+     * @throws ClassCastException if using natural ordering and the elements are not {@link Comparable}
      */
     public static <T> Range<T> is(final T element, final Comparator<T> comparator) {
         return between(element, element, comparator);
@@ -479,11 +479,11 @@ public final class Range<T> implements Serializable {
     }
 
     /**
-     * <p>Gets the range as a {@code String}.</p>
+     * <p>Gets the range as a {@link String}.</p>
      *
      * <p>The format of the String is '[<i>min</i>..<i>max</i>]'.</p>
      *
-     * @return the {@code String} representation of this range
+     * @return the {@link String} representation of this range
      */
     @Override
     public String toString() {
diff --git a/src/main/java/org/apache/commons/lang3/RegExUtils.java b/src/main/java/org/apache/commons/lang3/RegExUtils.java
index 53ba4ffec..0efbceee7 100644
--- a/src/main/java/org/apache/commons/lang3/RegExUtils.java
+++ b/src/main/java/org/apache/commons/lang3/RegExUtils.java
@@ -210,7 +210,7 @@ public class RegExUtils {
      *            the source string
      * @param regex
      *            the regular expression to which this string is to be matched
-     * @return The resulting {@code String}
+     * @return The resulting {@link String}
      * @see #replacePattern(String, String, String)
      * @see String#replaceAll(String, String)
      * @see Pattern#DOTALL
@@ -443,7 +443,7 @@ public class RegExUtils {
      *            the regular expression to which this string is to be matched
      * @param replacement
      *            the string to be substituted for each match
-     * @return The resulting {@code String}
+     * @return The resulting {@link String}
      * @see #replaceAll(String, String, String)
      * @see String#replaceAll(String, String)
      * @see Pattern#DOTALL
diff --git a/src/main/java/org/apache/commons/lang3/SerializationException.java b/src/main/java/org/apache/commons/lang3/SerializationException.java
index af4e67aa2..618fa82cf 100644
--- a/src/main/java/org/apache/commons/lang3/SerializationException.java
+++ b/src/main/java/org/apache/commons/lang3/SerializationException.java
@@ -34,14 +34,14 @@ public class SerializationException extends RuntimeException {
     private static final long serialVersionUID = 4029025366392702726L;
 
     /**
-     * <p>Constructs a new {@code SerializationException} without specified
+     * <p>Constructs a new {@link SerializationException} without specified
      * detail message.</p>
      */
     public SerializationException() {
     }
 
     /**
-     * <p>Constructs a new {@code SerializationException} with specified
+     * <p>Constructs a new {@link SerializationException} with specified
      * detail message.</p>
      *
      * @param msg  The error message.
@@ -51,10 +51,10 @@ public class SerializationException extends RuntimeException {
     }
 
     /**
-     * <p>Constructs a new {@code SerializationException} with specified
-     * nested {@code Throwable}.</p>
+     * <p>Constructs a new {@link SerializationException} with specified
+     * nested {@link Throwable}.</p>
      *
-     * @param cause  The {@code Exception} or {@code Error}
+     * @param cause  The {@link Exception} or {@link Error}
      *  that caused this exception to be thrown.
      */
     public SerializationException(final Throwable cause) {
@@ -62,11 +62,11 @@ public class SerializationException extends RuntimeException {
     }
 
     /**
-     * <p>Constructs a new {@code SerializationException} with specified
-     * detail message and nested {@code Throwable}.</p>
+     * <p>Constructs a new {@link SerializationException} with specified
+     * detail message and nested {@link Throwable}.</p>
      *
      * @param msg    The error message.
-     * @param cause  The {@code Exception} or {@code Error}
+     * @param cause  The {@link Exception} or {@link Error}
      *  that caused this exception to be thrown.
      */
     public SerializationException(final String msg, final Throwable cause) {
diff --git a/src/main/java/org/apache/commons/lang3/SerializationUtils.java b/src/main/java/org/apache/commons/lang3/SerializationUtils.java
index 8db268e59..2bc001ab6 100644
--- a/src/main/java/org/apache/commons/lang3/SerializationUtils.java
+++ b/src/main/java/org/apache/commons/lang3/SerializationUtils.java
@@ -48,12 +48,12 @@ public class SerializationUtils {
 
     /**
      * <p>Custom specialization of the standard JDK {@link java.io.ObjectInputStream}
-     * that uses a custom  {@code ClassLoader} to resolve a class.
-     * If the specified {@code ClassLoader} is not able to resolve the class,
+     * that uses a custom  {@link ClassLoader} to resolve a class.
+     * If the specified {@link ClassLoader} is not able to resolve the class,
      * the context classloader of the current thread will be used.
      * This way, the standard deserialization work also in web-application
      * containers and application servers, no matter in which of the
-     * {@code ClassLoader} the particular class that encapsulates
+     * {@link ClassLoader} the particular class that encapsulates
      * serialization/deserialization lives. </p>
      *
      * <p>For more in-depth information about the problem for which this
@@ -79,7 +79,7 @@ public class SerializationUtils {
 
         /**
          * Constructor.
-         * @param in The {@code InputStream}.
+         * @param in The {@link InputStream}.
          * @param classLoader classloader to use
          * @throws IOException if an I/O error occurs while reading stream header.
          * @see java.io.ObjectInputStream
@@ -90,10 +90,10 @@ public class SerializationUtils {
         }
 
         /**
-         * Overridden version that uses the parameterized {@code ClassLoader} or the {@code ClassLoader}
-         * of the current {@code Thread} to resolve the class.
-         * @param desc An instance of class {@code ObjectStreamClass}.
-         * @return A {@code Class} object corresponding to {@code desc}.
+         * Overridden version that uses the parameterized {@link ClassLoader} or the {@link ClassLoader}
+         * of the current {@link Thread} to resolve the class.
+         * @param desc An instance of class {@link ObjectStreamClass}.
+         * @return A {@link Class} object corresponding to {@code desc}.
          * @throws IOException Any of the usual Input/Output exceptions.
          * @throws ClassNotFoundException If class of a serialized object cannot be found.
          */
@@ -118,16 +118,16 @@ public class SerializationUtils {
     }
 
     /**
-     * <p>Deep clone an {@code Object} using serialization.</p>
+     * <p>Deep clone an {@link Object} using serialization.</p>
      *
      * <p>This is many times slower than writing clone methods by hand
      * on all objects in your object graph. However, for complex object
      * graphs, or for those that don't support deep cloning this can
      * be a simple alternative implementation. Of course all the objects
-     * must be {@code Serializable}.</p>
+     * must be {@link Serializable}.</p>
      *
      * @param <T> the type of the object involved
-     * @param object  the {@code Serializable} object to clone
+     * @param object  the {@link Serializable} object to clone
      * @return the cloned object
      * @throws SerializationException (runtime) if the serialization fails
      */
@@ -154,7 +154,7 @@ public class SerializationUtils {
 
     /**
      * <p>
-     * Deserializes a single {@code Object} from an array of bytes.
+     * Deserializes a single {@link Object} from an array of bytes.
      * </p>
      *
      * <p>
@@ -177,7 +177,7 @@ public class SerializationUtils {
 
     /**
      * <p>
-     * Deserializes an {@code Object} from the specified stream.
+     * Deserializes an {@link Object} from the specified stream.
      * </p>
      *
      * <p>
@@ -232,7 +232,7 @@ public class SerializationUtils {
     }
 
     /**
-     * <p>Serializes an {@code Object} to a byte array for
+     * <p>Serializes an {@link Object} to a byte array for
      * storage/serialization.</p>
      *
      * @param obj  the object to serialize to bytes
@@ -246,7 +246,7 @@ public class SerializationUtils {
     }
 
     /**
-     * <p>Serializes an {@code Object} to the specified stream.</p>
+     * <p>Serializes an {@link Object} to the specified stream.</p>
      *
      * <p>The stream will be closed once the object is written.
      * This avoids the need for a finally clause, and maybe also exception
diff --git a/src/main/java/org/apache/commons/lang3/Streams.java b/src/main/java/org/apache/commons/lang3/Streams.java
index d9227d3ef..7adcf6b4c 100644
--- a/src/main/java/org/apache/commons/lang3/Streams.java
+++ b/src/main/java/org/apache/commons/lang3/Streams.java
@@ -151,14 +151,14 @@ public class Streams {
 
         /**
          * Performs a mutable reduction operation on the elements of this stream using a
-         * {@code Collector}.  A {@code Collector}
+         * {@link Collector}.  A {@link Collector}
          * encapsulates the functions used as arguments to
          * {@link #collect(Supplier, BiConsumer, BiConsumer)}, allowing for reuse of
          * collection strategies and composition of collect operations such as
          * multiple-level grouping or partitioning.
          *
          * <p>
-         * If the underlying stream is parallel, and the {@code Collector}
+         * If the underlying stream is parallel, and the {@link Collector}
          * is concurrent, and either the stream is unordered or the collector is
          * unordered, then a concurrent reduction will be performed
          * (see {@link Collector} for details on concurrent reduction.)
@@ -172,7 +172,7 @@ public class Streams {
          * When executed in parallel, multiple intermediate results may be
          * instantiated, populated, and merged so as to maintain isolation of
          * mutable data structures.  Therefore, even when executed in parallel
-         * with non-thread-safe data structures (such as {@code ArrayList}), no
+         * with non-thread-safe data structures (such as {@link ArrayList}), no
          * additional synchronization is needed for a parallel reduction.
          * </p>
          * <p>
@@ -193,7 +193,7 @@ public class Streams {
          *
          * <p>
          * The following will classify {@code Person} objects by state and city,
-         * cascading two {@code Collector}s together:
+         * cascading two {@link Collector}s together:
          * </p>
          * <pre>{@code
          *     Map<String, Map<String, List<Person>>> peopleByStateAndCity
@@ -202,8 +202,8 @@ public class Streams {
          * }</pre>
          *
          * @param <R> the type of the result
-         * @param <A> the intermediate accumulation type of the {@code Collector}
-         * @param collector the {@code Collector} describing the reduction
+         * @param <A> the intermediate accumulation type of the {@link Collector}
+         * @param collector the {@link Collector} describing the reduction
          * @return the result of the reduction
          * @see #collect(Supplier, BiConsumer, BiConsumer)
          * @see Collectors
@@ -216,7 +216,7 @@ public class Streams {
         /**
          * Performs a mutable reduction operation on the elements of this FailableStream.
          * A mutable reduction is one in which the reduced value is a mutable result
-         * container, such as an {@code ArrayList}, and elements are incorporated by updating
+         * container, such as an {@link ArrayList}, and elements are incorporated by updating
          * the state of the result rather than by replacing the result. This produces a result equivalent to:
          * <pre>{@code
          *     R result = supplier.get();
@@ -237,7 +237,7 @@ public class Streams {
          * <p>
          * Note There are many existing classes in the JDK whose signatures are
          * well-suited for use with method references as arguments to {@code collect()}.
-         * For example, the following will accumulate strings into an {@code ArrayList}:
+         * For example, the following will accumulate strings into an {@link ArrayList}:
          * </p>
          * <pre>{@code
          *     List<String> asList = stringStream.collect(ArrayList::new, ArrayList::add,
@@ -537,12 +537,12 @@ public class Streams {
     }
 
     /**
-     * Returns a {@code Collector} that accumulates the input elements into a
+     * Returns a {@link Collector} that accumulates the input elements into a
      * new array.
      *
      * @param pElementType Type of an element in the array.
      * @param <O> the type of the input elements
-     * @return a {@code Collector} which collects all the input elements into an
+     * @return a {@link Collector} which collects all the input elements into an
      * array, in encounter order
      */
     public static <O extends Object> Collector<O, ?, O[]> toArray(final Class<O> pElementType) {
diff --git a/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java b/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
index 9b2c8f9eb..a82f71cad 100644
--- a/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
+++ b/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
@@ -31,7 +31,7 @@ import org.apache.commons.lang3.text.translate.UnicodeUnescaper;
 import org.apache.commons.lang3.text.translate.UnicodeUnpairedSurrogateRemover;
 
 /**
- * <p>Escapes and unescapes {@code String}s for
+ * <p>Escapes and unescapes {@link String}s for
  * Java, Java Script, HTML and XML.</p>
  *
  * <p>#ThreadSafe#</p>
@@ -418,7 +418,7 @@ public class StringEscapeUtils {
     /* Helper functions */
 
     /**
-     * <p>{@code StringEscapeUtils} instances should NOT be constructed in
+     * <p>{@link StringEscapeUtils} instances should NOT be constructed in
      * standard programming.</p>
      *
      * <p>Instead, the class should be used as:</p>
@@ -431,7 +431,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using Java String rules.</p>
+     * <p>Escapes the characters in a {@link String} using Java String rules.</p>
      *
      * <p>Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.) </p>
      *
@@ -455,7 +455,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using EcmaScript String rules.</p>
+     * <p>Escapes the characters in a {@link String} using EcmaScript String rules.</p>
      * <p>Escapes any values it finds into their EcmaScript String form.
      * Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.) </p>
      *
@@ -483,7 +483,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using Json String rules.</p>
+     * <p>Escapes the characters in a {@link String} using Json String rules.</p>
      * <p>Escapes any values it finds into their Json String form.
      * Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.) </p>
      *
@@ -511,28 +511,28 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Unescapes any Java literals found in the {@code String}.
+     * <p>Unescapes any Java literals found in the {@link String}.
      * For example, it will turn a sequence of {@code '\'} and
      * {@code 'n'} into a newline character, unless the {@code '\'}
      * is preceded by another {@code '\'}.</p>
      *
-     * @param input  the {@code String} to unescape, may be null
-     * @return a new unescaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to unescape, may be null
+     * @return a new unescaped {@link String}, {@code null} if null string input
      */
     public static final String unescapeJava(final String input) {
         return UNESCAPE_JAVA.translate(input);
     }
 
     /**
-     * <p>Unescapes any EcmaScript literals found in the {@code String}.</p>
+     * <p>Unescapes any EcmaScript literals found in the {@link String}.</p>
      *
      * <p>For example, it will turn a sequence of {@code '\'} and {@code 'n'}
      * into a newline character, unless the {@code '\'} is preceded by another
      * {@code '\'}.</p>
      *
      * @see #unescapeJava(String)
-     * @param input  the {@code String} to unescape, may be null
-     * @return A new unescaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to unescape, may be null
+     * @return A new unescaped {@link String}, {@code null} if null string input
      *
      * @since 3.0
      */
@@ -541,15 +541,15 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Unescapes any Json literals found in the {@code String}.</p>
+     * <p>Unescapes any Json literals found in the {@link String}.</p>
      *
      * <p>For example, it will turn a sequence of {@code '\'} and {@code 'n'}
      * into a newline character, unless the {@code '\'} is preceded by another
      * {@code '\'}.</p>
      *
      * @see #unescapeJava(String)
-     * @param input  the {@code String} to unescape, may be null
-     * @return A new unescaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to unescape, may be null
+     * @return A new unescaped {@link String}, {@code null} if null string input
      *
      * @since 3.2
      */
@@ -558,7 +558,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using HTML entities.</p>
+     * <p>Escapes the characters in a {@link String} using HTML entities.</p>
      *
      * <p>
      * For example:
@@ -573,8 +573,8 @@ public class StringEscapeUtils {
      * Note that the commonly used apostrophe escape character (&amp;apos;)
      * is not a legal entity and so is not supported). </p>
      *
-     * @param input  the {@code String} to escape, may be null
-     * @return a new escaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to escape, may be null
+     * @return a new escaped {@link String}, {@code null} if null string input
      *
      * @see <a href="http://hotwired.lycos.com/webmonkey/reference/special_characters/">ISO Entities</a>
      * @see <a href="http://www.w3.org/TR/REC-html32#latin1">HTML 3.2 Character Entities for ISO Latin-1</a>
@@ -589,11 +589,11 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using HTML entities.</p>
+     * <p>Escapes the characters in a {@link String} using HTML entities.</p>
      * <p>Supports only the HTML 3.0 entities. </p>
      *
-     * @param input  the {@code String} to escape, may be null
-     * @return a new escaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to escape, may be null
+     * @return a new escaped {@link String}, {@code null} if null string input
      *
      * @since 3.0
      */
@@ -613,8 +613,8 @@ public class StringEscapeUtils {
      * verbatim into the result string. e.g. {@code "&gt;&zzzz;x"} will
      * become {@code ">&zzzz;x"}.</p>
      *
-     * @param input  the {@code String} to unescape, may be null
-     * @return a new unescaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to unescape, may be null
+     * @return a new unescaped {@link String}, {@code null} if null string input
      *
      * @since 3.0
      */
@@ -627,8 +627,8 @@ public class StringEscapeUtils {
      * containing the actual Unicode characters corresponding to the
      * escapes. Supports only HTML 3.0 entities.</p>
      *
-     * @param input  the {@code String} to unescape, may be null
-     * @return a new unescaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to unescape, may be null
+     * @return a new unescaped {@link String}, {@code null} if null string input
      *
      * @since 3.0
      */
@@ -637,7 +637,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using XML entities.</p>
+     * <p>Escapes the characters in a {@link String} using XML entities.</p>
      *
      * <p>For example: {@code "bread" & "butter"} =&gt;
      * {@code &quot;bread&quot; &amp; &quot;butter&quot;}.
@@ -651,8 +651,8 @@ public class StringEscapeUtils {
      *    via the following:
      * {@code StringEscapeUtils.ESCAPE_XML.with( NumericEntityEscaper.between(0x7f, Integer.MAX_VALUE) );}</p>
      *
-     * @param input  the {@code String} to escape, may be null
-     * @return a new escaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to escape, may be null
+     * @return a new escaped {@link String}, {@code null} if null string input
      * @see #unescapeXml(java.lang.String)
      * @deprecated use {@link #escapeXml10(java.lang.String)} or {@link #escapeXml11(java.lang.String)} instead.
      */
@@ -662,7 +662,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using XML entities.</p>
+     * <p>Escapes the characters in a {@link String} using XML entities.</p>
      *
      * <p>For example: {@code "bread" & "butter"} =&gt;
      * {@code &quot;bread&quot; &amp; &quot;butter&quot;}.
@@ -684,8 +684,8 @@ public class StringEscapeUtils {
      * document. If you want to allow more non-text characters in an XML 1.1
      * document, use {@link #escapeXml11(String)}.</p>
      *
-     * @param input  the {@code String} to escape, may be null
-     * @return a new escaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to escape, may be null
+     * @return a new escaped {@link String}, {@code null} if null string input
      * @see #unescapeXml(java.lang.String)
      * @since 3.3
      */
@@ -694,7 +694,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Escapes the characters in a {@code String} using XML entities.</p>
+     * <p>Escapes the characters in a {@link String} using XML entities.</p>
      *
      * <p>For example: {@code "bread" & "butter"} =&gt;
      * {@code &quot;bread&quot; &amp; &quot;butter&quot;}.
@@ -714,8 +714,8 @@ public class StringEscapeUtils {
      * <p>The returned string can be inserted into a valid XML 1.1 document. Do not
      * use it for XML 1.0 documents.</p>
      *
-     * @param input  the {@code String} to escape, may be null
-     * @return a new escaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to escape, may be null
+     * @return a new escaped {@link String}, {@code null} if null string input
      * @see #unescapeXml(java.lang.String)
      * @since 3.3
      */
@@ -734,8 +734,8 @@ public class StringEscapeUtils {
      * <p>Note that numerical \\u Unicode codes are unescaped to their respective
      *    Unicode characters. This may change in future releases. </p>
      *
-     * @param input  the {@code String} to unescape, may be null
-     * @return a new unescaped {@code String}, {@code null} if null string input
+     * @param input  the {@link String} to unescape, may be null
+     * @return a new unescaped {@link String}, {@code null} if null string input
      * @see #escapeXml(String)
      * @see #escapeXml10(String)
      * @see #escapeXml11(String)
@@ -746,7 +746,7 @@ public class StringEscapeUtils {
 
 
     /**
-     * <p>Returns a {@code String} value for a CSV column enclosed in double quotes,
+     * <p>Returns a {@link String} value for a CSV column enclosed in double quotes,
      * if required.</p>
      *
      * <p>If the value contains a comma, newline or double quote, then the
@@ -770,7 +770,7 @@ public class StringEscapeUtils {
     }
 
     /**
-     * <p>Returns a {@code String} value for an unescaped CSV column. </p>
+     * <p>Returns a {@link String} value for an unescaped CSV column. </p>
      *
      * <p>If the value is enclosed in double quotes, and contains a comma, newline
      *    or double quote, then quotes are removed.
diff --git a/src/main/java/org/apache/commons/lang3/StringUtils.java b/src/main/java/org/apache/commons/lang3/StringUtils.java
index 62b00f906..5d03cda3b 100644
--- a/src/main/java/org/apache/commons/lang3/StringUtils.java
+++ b/src/main/java/org/apache/commons/lang3/StringUtils.java
@@ -93,7 +93,7 @@ import org.apache.commons.lang3.function.ToBooleanBiFunction;
  *      - the number of changes needed to change one String into another</li>
  * </ul>
  *
- * <p>The {@code StringUtils} class defines certain words related to
+ * <p>The {@link StringUtils} class defines certain words related to
  * String handling.</p>
  *
  * <ul>
@@ -104,14 +104,14 @@ import org.apache.commons.lang3.function.ToBooleanBiFunction;
  *  <li>trim - the characters &lt;= 32 as in {@link String#trim()}</li>
  * </ul>
  *
- * <p>{@code StringUtils} handles {@code null} input Strings quietly.
+ * <p>{@link StringUtils} handles {@code null} input Strings quietly.
  * That is to say that a {@code null} input will return {@code null}.
  * Where a {@code boolean} or {@code int} is being returned
  * details vary by method.</p>
  *
  * <p>A side effect of the {@code null} handling is that a
- * {@code NullPointerException} should be considered a bug in
- * {@code StringUtils}.</p>
+ * {@link NullPointerException} should be considered a bug in
+ * {@link StringUtils}.</p>
  *
  * <p>Methods in this class include sample code in their Javadoc comments to explain their operation.
  * The symbol {@code *} is used to indicate any input including {@code null}.</p>
@@ -198,7 +198,7 @@ public class StringUtils {
      *       {@code maxWidth}, return {@code str}.</li>
      *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + "...")}.</li>
      *   <li>If {@code maxWidth} is less than {@code 4}, throw an
-     *       {@code IllegalArgumentException}.</li>
+     *       {@link IllegalArgumentException}.</li>
      *   <li>In no case will it return a String of length greater than
      *       {@code maxWidth}.</li>
      * </ul>
@@ -273,7 +273,7 @@ public class StringUtils {
      *       {@code maxWidth}, return {@code str}.</li>
      *   <li>Else abbreviate it to {@code (substring(str, 0, max-abbrevMarker.length) + abbrevMarker)}.</li>
      *   <li>If {@code maxWidth} is less than {@code abbrevMarker.length + 1}, throw an
-     *       {@code IllegalArgumentException}.</li>
+     *       {@link IllegalArgumentException}.</li>
      *   <li>In no case will it return a String of length greater than
      *       {@code maxWidth}.</li>
      * </ul>
@@ -1990,7 +1990,7 @@ public class StringUtils {
      * Calls {@link String#getBytes(Charset)} in a null-safe manner.
      *
      * @param string input string
-     * @param charset The {@link Charset} to encode the {@code String}. If null, then use the default Charset.
+     * @param charset The {@link Charset} to encode the {@link String}. If null, then use the default Charset.
      * @return The empty byte[] if {@code string} is null, the result of {@link String#getBytes(Charset)} otherwise.
      * @see String#getBytes(Charset)
      * @since 3.10
@@ -2003,7 +2003,7 @@ public class StringUtils {
      * Calls {@link String#getBytes(String)} in a null-safe manner.
      *
      * @param string input string
-     * @param charset The {@link Charset} name to encode the {@code String}. If null, then use the default Charset.
+     * @param charset The {@link Charset} name to encode the {@link String}. If null, then use the default Charset.
      * @return The empty byte[] if {@code string} is null, the result of {@link String#getBytes(String)} otherwise.
      * @throws UnsupportedEncodingException Thrown when the named charset is not supported.
      * @see String#getBytes(String)
@@ -2633,7 +2633,7 @@ public class StringUtils {
      * Returns the index within {@code seq} of the first occurrence of
      * the specified character. If a character with value
      * {@code searchChar} occurs in the character sequence represented by
-     * {@code seq} {@code CharSequence} object, then the index (in Unicode
+     * {@code seq} {@link CharSequence} object, then the index (in Unicode
      * code units) of the first such occurrence is returned. For
      * values of {@code searchChar} in the range from 0 to 0xFFFF
      * (inclusive), this is the smallest value <i>k</i> such that:
@@ -2664,7 +2664,7 @@ public class StringUtils {
      *  -1 if no match or {@code null} string input
      * @since 2.0
      * @since 3.0 Changed signature from indexOf(String, int) to indexOf(CharSequence, int)
-     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@code String}
+     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@link String}
      */
     public static int indexOf(final CharSequence seq, final int searchChar) {
         if (isEmpty(seq)) {
@@ -2679,7 +2679,7 @@ public class StringUtils {
      * specified character, starting the search at the specified index.
      * <p>
      * If a character with value {@code searchChar} occurs in the
-     * character sequence represented by the {@code seq} {@code CharSequence}
+     * character sequence represented by the {@code seq} {@link CharSequence}
      * object at an index no smaller than {@code startPos}, then
      * the index of the first such occurrence is returned. For values
      * of {@code searchChar} in the range from 0 to 0xFFFF (inclusive),
@@ -2724,7 +2724,7 @@ public class StringUtils {
      *  -1 if no match or {@code null} string input
      * @since 2.0
      * @since 3.0 Changed signature from indexOf(String, int, int) to indexOf(CharSequence, int, int)
-     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@code String}
+     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@link String}
      */
     public static int indexOf(final CharSequence seq, final int searchChar, final int startPos) {
         if (isEmpty(seq)) {
@@ -4335,7 +4335,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>Joins the elements of the provided {@code Iterable} into
+     * <p>Joins the elements of the provided {@link Iterable} into
      * a single String containing the provided elements.</p>
      *
      * <p>No delimiter is added before or after the list. Null objects or empty
@@ -4343,7 +4343,7 @@ public class StringUtils {
      *
      * <p>See the examples here: {@link #join(Object[],char)}. </p>
      *
-     * @param iterable  the {@code Iterable} providing the values to join together, may be null
+     * @param iterable  the {@link Iterable} providing the values to join together, may be null
      * @param separator  the separator character to use
      * @return the joined String, {@code null} if null iterator input
      * @since 2.3
@@ -4356,7 +4356,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>Joins the elements of the provided {@code Iterable} into
+     * <p>Joins the elements of the provided {@link Iterable} into
      * a single String containing the provided elements.</p>
      *
      * <p>No delimiter is added before or after the list.
@@ -4364,7 +4364,7 @@ public class StringUtils {
      *
      * <p>See the examples here: {@link #join(Object[],String)}. </p>
      *
-     * @param iterable  the {@code Iterable} providing the values to join together, may be null
+     * @param iterable  the {@link Iterable} providing the values to join together, may be null
      * @param separator  the separator character to use, null treated as ""
      * @return the joined String, {@code null} if null iterator input
      * @since 2.3
@@ -4377,7 +4377,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>Joins the elements of the provided {@code Iterator} into
+     * <p>Joins the elements of the provided {@link Iterator} into
      * a single String containing the provided elements.</p>
      *
      * <p>No delimiter is added before or after the list. Null objects or empty
@@ -4385,7 +4385,7 @@ public class StringUtils {
      *
      * <p>See the examples here: {@link #join(Object[],char)}. </p>
      *
-     * @param iterator  the {@code Iterator} of values to join together, may be null
+     * @param iterator  the {@link Iterator} of values to join together, may be null
      * @param separator  the separator character to use
      * @return the joined String, {@code null} if null iterator input
      * @since 2.0
@@ -4422,7 +4422,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>Joins the elements of the provided {@code Iterator} into
+     * <p>Joins the elements of the provided {@link Iterator} into
      * a single String containing the provided elements.</p>
      *
      * <p>No delimiter is added before or after the list.
@@ -4430,7 +4430,7 @@ public class StringUtils {
      *
      * <p>See the examples here: {@link #join(Object[],String)}. </p>
      *
-     * @param iterator  the {@code Iterator} of values to join together, may be null
+     * @param iterator  the {@link Iterator} of values to join together, may be null
      * @param separator  the separator character to use, null treated as ""
      * @return the joined String, {@code null} if null iterator input
      */
@@ -4467,7 +4467,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>Joins the elements of the provided {@code List} into a single String
+     * <p>Joins the elements of the provided {@link List} into a single String
      * containing the provided list of elements.</p>
      *
      * <p>No delimiter is added before or after the list.
@@ -4483,7 +4483,7 @@ public class StringUtils {
      * StringUtils.join([null, "", "a"], ';')  = ";;a"
      * </pre>
      *
-     * @param list  the {@code List} of values to join together, may be null
+     * @param list  the {@link List} of values to join together, may be null
      * @param separator  the separator character to use
      * @param startIndex the first index to start joining from.  It is
      * an error to pass in a start index past the end of the list
@@ -4505,7 +4505,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>Joins the elements of the provided {@code List} into a single String
+     * <p>Joins the elements of the provided {@link List} into a single String
      * containing the provided list of elements.</p>
      *
      * <p>No delimiter is added before or after the list.
@@ -4521,7 +4521,7 @@ public class StringUtils {
      * StringUtils.join([null, "", "a"], ';')  = ";;a"
      * </pre>
      *
-     * @param list  the {@code List} of values to join together, may be null
+     * @param list  the {@link List} of values to join together, may be null
      * @param separator  the separator character to use
      * @param startIndex the first index to start joining from.  It is
      * an error to pass in a start index past the end of the list
@@ -4977,8 +4977,8 @@ public class StringUtils {
      * </pre></blockquote>
      * is true.  In either case, if no such character occurs in this
      * string, then {@code -1} is returned. Furthermore, a {@code null} or empty ("")
-     * {@code CharSequence} will return {@code -1}. The
-     * {@code seq} {@code CharSequence} object is searched backwards
+     * {@link CharSequence} will return {@code -1}. The
+     * {@code seq} {@link CharSequence} object is searched backwards
      * starting at the last character.
      *
      * <pre>
@@ -4988,13 +4988,13 @@ public class StringUtils {
      * StringUtils.lastIndexOf("aabaabaa", 'b') = 5
      * </pre>
      *
-     * @param seq  the {@code CharSequence} to check, may be null
+     * @param seq  the {@link CharSequence} to check, may be null
      * @param searchChar  the character to find
      * @return the last index of the search character,
      *  -1 if no match or {@code null} string input
      * @since 2.0
      * @since 3.0 Changed signature from lastIndexOf(String, int) to lastIndexOf(CharSequence, int)
-     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@code String}
+     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@link String}
      */
     public static int lastIndexOf(final CharSequence seq, final int searchChar) {
         if (isEmpty(seq)) {
@@ -5020,7 +5020,7 @@ public class StringUtils {
      * is true. In either case, if no such character occurs in {@code seq}
      * at or before position {@code startPos}, then
      * {@code -1} is returned. Furthermore, a {@code null} or empty ("")
-     * {@code CharSequence} will return {@code -1}. A start position greater
+     * {@link CharSequence} will return {@code -1}. A start position greater
      * than the string length searches the whole string.
      * The search starts at the {@code startPos} and works backwards;
      * matches starting after the start position are ignored.
@@ -6146,7 +6146,7 @@ public class StringUtils {
      *            the source string
      * @param regex
      *            the regular expression to which this string is to be matched
-     * @return The resulting {@code String}
+     * @return The resulting {@link String}
      * @see #replacePattern(String, String, String)
      * @see String#replaceAll(String, String)
      * @see Pattern#DOTALL
@@ -7104,7 +7104,7 @@ public class StringUtils {
      *            the regular expression to which this string is to be matched
      * @param replacement
      *            the string to be substituted for each match
-     * @return The resulting {@code String}
+     * @return The resulting {@link String}
      * @see #replaceAll(String, String, String)
      * @see String#replaceAll(String, String)
      * @see Pattern#DOTALL
@@ -9017,7 +9017,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>Converts a {@code CharSequence} into an array of code points.</p>
+     * <p>Converts a {@link CharSequence} into an array of code points.</p>
      *
      * <p>Valid pairs of surrogate code units will be converted into a single supplementary
      * code point. Isolated surrogate code units (i.e. a high surrogate not followed by a low surrogate or
@@ -9202,7 +9202,7 @@ public class StringUtils {
      *       long, return it.</li>
      *   <li>Else truncate it to {@code substring(str, 0, maxWidth)}.</li>
      *   <li>If {@code maxWidth} is less than {@code 0}, throw an
-     *       {@code IllegalArgumentException}.</li>
+     *       {@link IllegalArgumentException}.</li>
      *   <li>In no case will it return a String of length greater than
      *       {@code maxWidth}.</li>
      * </ul>
@@ -9241,9 +9241,9 @@ public class StringUtils {
      *       long, return it.</li>
      *   <li>Else truncate it to {@code substring(str, offset, maxWidth)}.</li>
      *   <li>If {@code maxWidth} is less than {@code 0}, throw an
-     *       {@code IllegalArgumentException}.</li>
+     *       {@link IllegalArgumentException}.</li>
      *   <li>If {@code offset} is less than {@code 0}, throw an
-     *       {@code IllegalArgumentException}.</li>
+     *       {@link IllegalArgumentException}.</li>
      *   <li>In no case will it return a String of length greater than
      *       {@code maxWidth}.</li>
      * </ul>
@@ -9567,7 +9567,7 @@ public class StringUtils {
      * Wraps a string with a char if that char is missing from the start or end of the given string.
      * </p>
      *
-     * <p>A new {@code String} will not be created if {@code str} is already wrapped.</p>
+     * <p>A new {@link String} will not be created if {@code str} is already wrapped.</p>
      *
      * <pre>
      * StringUtils.wrapIfMissing(null, *)        = null
@@ -9615,7 +9615,7 @@ public class StringUtils {
      * Wraps a string with a string if that string is missing from the start or end of the given string.
      * </p>
      *
-     * <p>A new {@code String} will not be created if {@code str} is already wrapped.</p>
+     * <p>A new {@link String} will not be created if {@code str} is already wrapped.</p>
      *
      * <pre>
      * StringUtils.wrapIfMissing(null, *)         = null
@@ -9664,7 +9664,7 @@ public class StringUtils {
     }
 
     /**
-     * <p>{@code StringUtils} instances should NOT be constructed in
+     * <p>{@link StringUtils} instances should NOT be constructed in
      * standard programming. Instead, the class should be used as
      * {@code StringUtils.trim(" foo ");}.</p>
      *
diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java b/src/main/java/org/apache/commons/lang3/SystemUtils.java
index 7e0f56613..a3e936409 100644
--- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
+++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
@@ -752,7 +752,7 @@ public class SystemUtils {
 
     /**
      * <p>
-     * The {@code user.country} or {@code user.region} System Property. User's country code, such as {@code GB}. First
+     * The {@code user.country} or {@code user.region} System Property. User's country code, such as {@code "GB"}. First
      * in Java version 1.2 as {@code user.region}. Renamed to {@code user.country} in 1.4
      * </p>
      * <p>
@@ -1632,7 +1632,7 @@ public class SystemUtils {
      * Gets an environment variable, defaulting to {@code defaultValue} if the variable cannot be read.
      * </p>
      * <p>
-     * If a {@code SecurityException} is caught, the return value is {@code defaultValue} and a message is written to
+     * If a {@link SecurityException} is caught, the return value is {@code defaultValue} and a message is written to
      * {@code System.err}.
      * </p>
      *
@@ -1671,7 +1671,7 @@ public class SystemUtils {
 
     /**
      * <p>
-     * Gets the Java home directory as a {@code File}.
+     * Gets the Java home directory as a {@link File}.
      * </p>
      *
      * @return a directory
@@ -1686,7 +1686,7 @@ public class SystemUtils {
 
     /**
      * <p>
-     * Gets the Java IO temporary directory as a {@code File}.
+     * Gets the Java IO temporary directory as a {@link File}.
      * </p>
      *
      * @return a directory
@@ -1738,7 +1738,7 @@ public class SystemUtils {
      * Gets a System property, defaulting to {@code null} if the property cannot be read.
      * </p>
      * <p>
-     * If a {@code SecurityException} is caught, the return value is {@code null} and a message is written to
+     * If a {@link SecurityException} is caught, the return value is {@code null} and a message is written to
      * {@code System.err}.
      * </p>
      *
@@ -1758,7 +1758,7 @@ public class SystemUtils {
 
     /**
      * <p>
-     * Gets the user directory as a {@code File}.
+     * Gets the user directory as a {@link File}.
      * </p>
      *
      * @return a directory
@@ -1773,7 +1773,7 @@ public class SystemUtils {
 
     /**
      * <p>
-     * Gets the user home directory as a {@code File}.
+     * Gets the user home directory as a {@link File}.
      * </p>
      *
      * @return a directory
diff --git a/src/main/java/org/apache/commons/lang3/ThreadUtils.java b/src/main/java/org/apache/commons/lang3/ThreadUtils.java
index ebecc7661..b64bea765 100644
--- a/src/main/java/org/apache/commons/lang3/ThreadUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ThreadUtils.java
@@ -218,7 +218,7 @@ public class ThreadUtils {
      * @param threadGroup the thread group
      * @param recurse if {@code true} then evaluate the predicate recursively on all thread groups in all subgroups of the given group
      * @param predicate the predicate
-     * @return An unmodifiable {@code Collection} of active thread groups which match the given predicate and which is a subgroup of the given thread group
+     * @return An unmodifiable {@link Collection} of active thread groups which match the given predicate and which is a subgroup of the given thread group
      * @throws NullPointerException if the given group or predicate is null
      * @throws  SecurityException  if the current thread cannot modify
      *          thread groups from this thread's thread group up to the system thread group
@@ -248,7 +248,7 @@ public class ThreadUtils {
      * Select all active thread groups which match the given predicate.
      *
      * @param predicate the predicate
-     * @return An unmodifiable {@code Collection} of active thread groups matching the given predicate
+     * @return An unmodifiable {@link Collection} of active thread groups matching the given predicate
      * @throws NullPointerException if the predicate is null
      * @throws  SecurityException
      *          if the current thread cannot access the system thread group
@@ -281,7 +281,7 @@ public class ThreadUtils {
      * @param threadGroup the thread group
      * @param recurse if {@code true} then evaluate the predicate recursively on all threads in all subgroups of the given group
      * @param predicate the predicate
-     * @return An unmodifiable {@code Collection} of active threads which match the given predicate and which belongs to the given thread group
+     * @return An unmodifiable {@link Collection} of active threads which match the given predicate and which belongs to the given thread group
      * @throws NullPointerException if the given group or predicate is null
      * @throws  SecurityException  if the current thread cannot modify
      *          thread groups from this thread's thread group up to the system thread group
@@ -311,7 +311,7 @@ public class ThreadUtils {
      * Select all active threads which match the given predicate.
      *
      * @param predicate the predicate
-     * @return An unmodifiable {@code Collection} of active threads matching the given predicate
+     * @return An unmodifiable {@link Collection} of active threads matching the given predicate
      *
      * @throws NullPointerException if the predicate is null
      * @throws  SecurityException
diff --git a/src/main/java/org/apache/commons/lang3/Validate.java b/src/main/java/org/apache/commons/lang3/Validate.java
index 5b955ff37..915c06997 100644
--- a/src/main/java/org/apache/commons/lang3/Validate.java
+++ b/src/main/java/org/apache/commons/lang3/Validate.java
@@ -830,7 +830,7 @@ public class Validate {
     }
 
     /**
-     * <p>Validates that the specified argument is not {@code NaN}; otherwise
+     * <p>Validates that the specified argument is not Not-a-Number (NaN); otherwise
      * throwing an exception.</p>
      *
      * <pre>Validate.notNaN(myDouble);</pre>
@@ -849,7 +849,7 @@ public class Validate {
     }
 
     /**
-     * <p>Validates that the specified argument is not {@code NaN}; otherwise
+     * <p>Validates that the specified argument is not Not-a-Number (NaN); otherwise
      * throwing an exception with the specified message.</p>
      *
      * <pre>Validate.notNaN(myDouble, "The value must be a number");</pre>
@@ -869,7 +869,7 @@ public class Validate {
     }
 
     /**
-     * <p>Validates that the specified argument is not infinite or {@code NaN};
+     * <p>Validates that the specified argument is not infinite or Not-a-Number (NaN);
      * otherwise throwing an exception.</p>
      *
      * <pre>Validate.finite(myDouble);</pre>
@@ -877,7 +877,7 @@ public class Validate {
      * <p>The message of the exception is &quot;The value is invalid: %f&quot;.</p>
      *
      * @param value  the value to validate
-     * @throws IllegalArgumentException if the value is infinite or {@code NaN}
+     * @throws IllegalArgumentException if the value is infinite or Not-a-Number (NaN)
      * @see #finite(double, java.lang.String, java.lang.Object...)
      *
      * @since 3.5
@@ -887,7 +887,7 @@ public class Validate {
     }
 
     /**
-     * <p>Validates that the specified argument is not infinite or {@code NaN};
+     * <p>Validates that the specified argument is not infinite or Not-a-Number (NaN);
      * otherwise throwing an exception with the specified message.</p>
      *
      * <pre>Validate.finite(myDouble, "The argument must contain a numeric value");</pre>
@@ -895,7 +895,7 @@ public class Validate {
      * @param value the value to validate
      * @param message  the {@link String#format(String, Object...)} exception message if invalid, not null
      * @param values  the optional values for the formatted exception message
-     * @throws IllegalArgumentException if the value is infinite or {@code NaN}
+     * @throws IllegalArgumentException if the value is infinite or Not-a-Number (NaN)
      * @see #finite(double)
      *
      * @since 3.5
diff --git a/src/main/java/org/apache/commons/lang3/builder/CompareToBuilder.java b/src/main/java/org/apache/commons/lang3/builder/CompareToBuilder.java
index bd2b5a400..c006e05be 100644
--- a/src/main/java/org/apache/commons/lang3/builder/CompareToBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/CompareToBuilder.java
@@ -113,7 +113,7 @@ public class CompareToBuilder implements Builder<Integer> {
     }
 
     /**
-     * <p>Compares two {@code Object}s via reflection.</p>
+     * <p>Compares two {@link Object}s via reflection.</p>
      *
      * <p>Fields can be private, thus {@code AccessibleObject.setAccessible}
      * is used to bypass normal access control checks. This will fail under a
@@ -143,7 +143,7 @@ public class CompareToBuilder implements Builder<Integer> {
     }
 
     /**
-     * <p>Compares two {@code Object}s via reflection.</p>
+     * <p>Compares two {@link Object}s via reflection.</p>
      *
      * <p>Fields can be private, thus {@code AccessibleObject.setAccessible}
      * is used to bypass normal access control checks. This will fail under a
@@ -175,7 +175,7 @@ public class CompareToBuilder implements Builder<Integer> {
     }
 
     /**
-     * <p>Compares two {@code Object}s via reflection.</p>
+     * <p>Compares two {@link Object}s via reflection.</p>
      *
      * <p>Fields can be private, thus {@code AccessibleObject.setAccessible}
      * is used to bypass normal access control checks. This will fail under a
@@ -208,7 +208,7 @@ public class CompareToBuilder implements Builder<Integer> {
     }
 
     /**
-     * <p>Compares two {@code Object}s via reflection.</p>
+     * <p>Compares two {@link Object}s via reflection.</p>
      *
      * <p>Fields can be private, thus {@code AccessibleObject.setAccessible}
      * is used to bypass normal access control checks. This will fail under a
@@ -241,7 +241,7 @@ public class CompareToBuilder implements Builder<Integer> {
     }
 
     /**
-     * <p>Compares two {@code Object}s via reflection.</p>
+     * <p>Compares two {@link Object}s via reflection.</p>
      *
      * <p>Fields can be private, thus {@code AccessibleObject.setAccessible}
      * is used to bypass normal access control checks. This will fail under a
@@ -304,8 +304,8 @@ public class CompareToBuilder implements Builder<Integer> {
      *
      * @param lhs  left-hand object
      * @param rhs  right-hand object
-     * @param clazz  {@code Class} that defines fields to be compared
-     * @param builder  {@code CompareToBuilder} to append to
+     * @param clazz  {@link Class} that defines fields to be compared
+     * @param builder  {@link CompareToBuilder} to append to
      * @param useTransients  whether to compare transient fields
      * @param excludeFields  fields to exclude
      */
@@ -354,7 +354,7 @@ public class CompareToBuilder implements Builder<Integer> {
 
     /**
      * <p>Appends to the {@code builder} the comparison of
-     * two {@code Object}s.</p>
+     * two {@link Object}s.</p>
      *
      * <ol>
      * <li>Check if {@code lhs == rhs}</li>
@@ -377,7 +377,7 @@ public class CompareToBuilder implements Builder<Integer> {
 
     /**
      * <p>Appends to the {@code builder} the comparison of
-     * two {@code Object}s.</p>
+     * two {@link Object}s.</p>
      *
      * <ol>
      * <li>Check if {@code lhs == rhs}</li>
@@ -393,8 +393,8 @@ public class CompareToBuilder implements Builder<Integer> {
      *
      * @param lhs  left-hand object
      * @param rhs  right-hand object
-     * @param comparator  {@code Comparator} used to compare the objects,
-     *  {@code null} means treat lhs as {@code Comparable}
+     * @param comparator  {@link Comparator} used to compare the objects,
+     *  {@code null} means treat lhs as {@link Comparable}
      * @return this - used to chain append calls
      * @throws ClassCastException  if {@code rhs} is not assignment-compatible
      *  with {@code lhs}
@@ -545,7 +545,7 @@ public class CompareToBuilder implements Builder<Integer> {
      * <p>This handles NaNs, Infinities, and {@code -0.0}.</p>
      *
      * <p>It is compatible with the hash code generated by
-     * {@code HashCodeBuilder}.</p>
+     * {@link HashCodeBuilder}.</p>
      *
      * @param lhs  left-hand value
      * @param rhs  right-hand value
@@ -566,7 +566,7 @@ public class CompareToBuilder implements Builder<Integer> {
      * <p>This handles NaNs, Infinities, and {@code -0.0}.</p>
      *
      * <p>It is compatible with the hash code generated by
-     * {@code HashCodeBuilder}.</p>
+     * {@link HashCodeBuilder}.</p>
      *
      * @param lhs  left-hand value
      * @param rhs  right-hand value
@@ -605,7 +605,7 @@ public class CompareToBuilder implements Builder<Integer> {
 
     /**
      * <p>Appends to the {@code builder} the deep comparison of
-     * two {@code Object} arrays.</p>
+     * two {@link Object} arrays.</p>
      *
      * <ol>
      *  <li>Check if arrays are the same using {@code ==}</li>
@@ -629,7 +629,7 @@ public class CompareToBuilder implements Builder<Integer> {
 
     /**
      * <p>Appends to the {@code builder} the deep comparison of
-     * two {@code Object} arrays.</p>
+     * two {@link Object} arrays.</p>
      *
      * <ol>
      *  <li>Check if arrays are the same using {@code ==}</li>
@@ -643,8 +643,8 @@ public class CompareToBuilder implements Builder<Integer> {
      *
      * @param lhs  left-hand array
      * @param rhs  right-hand array
-     * @param comparator  {@code Comparator} to use to compare the array elements,
-     *  {@code null} means to treat {@code lhs} elements as {@code Comparable}.
+     * @param comparator  {@link Comparator} to use to compare the array elements,
+     *  {@code null} means to treat {@code lhs} elements as {@link Comparable}.
      * @return this - used to chain append calls
      * @throws ClassCastException  if {@code rhs} is not assignment-compatible
      *  with {@code lhs}
diff --git a/src/main/java/org/apache/commons/lang3/builder/Diff.java b/src/main/java/org/apache/commons/lang3/builder/Diff.java
index a7b0c2735..b7d78b915 100644
--- a/src/main/java/org/apache/commons/lang3/builder/Diff.java
+++ b/src/main/java/org/apache/commons/lang3/builder/Diff.java
@@ -24,18 +24,18 @@ import org.apache.commons.lang3.tuple.Pair;
 
 /**
  * <p>
- * A {@code Diff} contains the differences between two {@link Diffable} class
+ * A {@link Diff} contains the differences between two {@link Diffable} class
  * fields.
  * </p>
  *
  * <p>
- * Typically, {@code Diff}s are retrieved by using a {@link DiffBuilder} to
+ * Typically, {@link Diff}s are retrieved by using a {@link DiffBuilder} to
  * produce a {@link DiffResult}, containing the differences between two objects.
  * </p>
  *
  *
  * @param <T>
- *            The type of object contained within this {@code Diff}. Differences
+ *            The type of object contained within this {@link Diff}. Differences
  *            between primitive objects are stored as their Object wrapper
  *            equivalent.
  * @since 3.3
@@ -52,7 +52,7 @@ public abstract class Diff<T> extends Pair<T, T> {
 
     /**
      * <p>
-     * Constructs a new {@code Diff} for the given field name.
+     * Constructs a new {@link Diff} for the given field name.
      * </p>
      *
      * @param fieldName
@@ -89,7 +89,7 @@ public abstract class Diff<T> extends Pair<T, T> {
 
     /**
      * <p>
-     * Returns a {@code String} representation of the {@code Diff}, with the
+     * Returns a {@link String} representation of the {@link Diff}, with the
      * following format:</p>
      *
      * <pre>
@@ -106,7 +106,7 @@ public abstract class Diff<T> extends Pair<T, T> {
 
     /**
      * <p>
-     * Throws {@code UnsupportedOperationException}.
+     * Throws {@link UnsupportedOperationException}.
      * </p>
      *
      * @param value
diff --git a/src/main/java/org/apache/commons/lang3/builder/DiffBuilder.java b/src/main/java/org/apache/commons/lang3/builder/DiffBuilder.java
index 6b2c50a36..e39f32564 100644
--- a/src/main/java/org/apache/commons/lang3/builder/DiffBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/DiffBuilder.java
@@ -19,6 +19,7 @@ package org.apache.commons.lang3.builder;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.ObjectUtils;
@@ -53,8 +54,8 @@ import org.apache.commons.lang3.Validate;
  * </pre>
  *
  * <p>
- * The {@code ToStringStyle} passed to the constructor is embedded in the
- * returned {@code DiffResult} and influences the style of the
+ * The {@link ToStringStyle} passed to the constructor is embedded in the
+ * returned {@link DiffResult} and influences the style of the
  * {@code DiffResult.toString()} method. This style choice can be overridden by
  * calling {@link DiffResult#toString(ToStringStyle)}.
  * </p>
@@ -789,15 +790,15 @@ public class DiffBuilder<T> implements Builder<DiffResult<T>> {
 
     /**
      * <p>
-     * Test if two {@code Objects}s are equal.
+     * Test if two {@link Objects}s are equal.
      * </p>
      *
      * @param fieldName
      *            the field name
      * @param lhs
-     *            the left hand {@code Object}
+     *            the left hand {@link Object}
      * @param rhs
-     *            the right hand {@code Object}
+     *            the right hand {@link Object}
      * @return this
      * @throws IllegalArgumentException
      *             if field name is {@code null}
@@ -914,7 +915,7 @@ public class DiffBuilder<T> implements Builder<DiffResult<T>> {
 
     /**
      * <p>
-     * Append diffs from another {@code DiffResult}.
+     * Append diffs from another {@link DiffResult}.
      * </p>
      *
      * <p>
@@ -942,7 +943,7 @@ public class DiffBuilder<T> implements Builder<DiffResult<T>> {
      * @param fieldName
      *            the field name
      * @param diffResult
-     *            the {@code DiffResult} to append
+     *            the {@link DiffResult} to append
      * @return this
      * @throws NullPointerException if field name is {@code null}
      * @since 3.5
@@ -969,7 +970,7 @@ public class DiffBuilder<T> implements Builder<DiffResult<T>> {
      * builder.
      * </p>
      *
-     * @return a {@code DiffResult} containing the differences between the two
+     * @return a {@link DiffResult} containing the differences between the two
      *         objects.
      */
     @Override
diff --git a/src/main/java/org/apache/commons/lang3/builder/DiffResult.java b/src/main/java/org/apache/commons/lang3/builder/DiffResult.java
index 0a2361d87..4e2ef64b1 100644
--- a/src/main/java/org/apache/commons/lang3/builder/DiffResult.java
+++ b/src/main/java/org/apache/commons/lang3/builder/DiffResult.java
@@ -24,13 +24,13 @@ import org.apache.commons.lang3.Validate;
 
 /**
  * <p>
- * A {@code DiffResult} contains a collection of the differences between two
+ * A {@link DiffResult} contains a collection of the differences between two
  * {@link Diffable} objects. Typically these differences are displayed using
  * {@link #toString()} method, which returns a string describing the fields that
  * differ between the objects.
  * </p>
  * <p>
- * Use a {@link DiffBuilder} to build a {@code DiffResult} comparing two objects.
+ * Use a {@link DiffBuilder} to build a {@link DiffResult} comparing two objects.
  * </p>
  * @param <T> type of the left and right object.
  *
@@ -40,7 +40,7 @@ public class DiffResult<T> implements Iterable<Diff<?>> {
 
     /**
      * <p>
-     * The {@code String} returned when the objects have no differences:
+     * The {@link String} returned when the objects have no differences:
      * {@value}
      * </p>
      */
@@ -110,11 +110,11 @@ public class DiffResult<T> implements Iterable<Diff<?>> {
 
     /**
      * <p>
-     * Returns an unmodifiable list of {@code Diff}s. The list may be empty if
+     * Returns an unmodifiable list of {@link Diff}s. The list may be empty if
      * there were no differences between the objects.
      * </p>
      *
-     * @return an unmodifiable list of {@code Diff}s
+     * @return an unmodifiable list of {@link Diff}s
      */
     public List<Diff<?>> getDiffs() {
         return Collections.unmodifiableList(diffList);
@@ -144,9 +144,9 @@ public class DiffResult<T> implements Iterable<Diff<?>> {
 
     /**
      * <p>
-     * Builds a {@code String} description of the differences contained within
-     * this {@code DiffResult}. A {@link ToStringBuilder} is used for each object
-     * and the style of the output is governed by the {@code ToStringStyle}
+     * Builds a {@link String} description of the differences contained within
+     * this {@link DiffResult}. A {@link ToStringBuilder} is used for each object
+     * and the style of the output is governed by the {@link ToStringStyle}
      * passed to the constructor.
      * </p>
      *
@@ -167,11 +167,11 @@ public class DiffResult<T> implements Iterable<Diff<?>> {
      * </p>
      *
      * <p>
-     * To use a different {@code ToStringStyle} for an instance of this class,
+     * To use a different {@link ToStringStyle} for an instance of this class,
      * use {@link #toString(ToStringStyle)}.
      * </p>
      *
-     * @return a {@code String} description of the differences.
+     * @return a {@link String} description of the differences.
      */
     @Override
     public String toString() {
@@ -180,14 +180,14 @@ public class DiffResult<T> implements Iterable<Diff<?>> {
 
     /**
      * <p>
-     * Builds a {@code String} description of the differences contained within
-     * this {@code DiffResult}, using the supplied {@code ToStringStyle}.
+     * Builds a {@link String} description of the differences contained within
+     * this {@link DiffResult}, using the supplied {@link ToStringStyle}.
      * </p>
      *
      * @param style
-     *            the {@code ToStringStyle} to use when outputting the objects
+     *            the {@link ToStringStyle} to use when outputting the objects
      *
-     * @return a {@code String} description of the differences.
+     * @return a {@link String} description of the differences.
      */
     public String toString(final ToStringStyle style) {
         if (diffList.isEmpty()) {
@@ -208,7 +208,7 @@ public class DiffResult<T> implements Iterable<Diff<?>> {
 
     /**
      * <p>
-     * Returns an iterator over the {@code Diff} objects contained in this list.
+     * Returns an iterator over the {@link Diff} objects contained in this list.
      * </p>
      *
      * @return the iterator
diff --git a/src/main/java/org/apache/commons/lang3/builder/Diffable.java b/src/main/java/org/apache/commons/lang3/builder/Diffable.java
index 71ffe31eb..ef2065516 100644
--- a/src/main/java/org/apache/commons/lang3/builder/Diffable.java
+++ b/src/main/java/org/apache/commons/lang3/builder/Diffable.java
@@ -17,7 +17,7 @@
 package org.apache.commons.lang3.builder;
 
 /**
- * <p>{@code Diffable} classes can be compared with other objects
+ * <p>{@link Diffable} classes can be compared with other objects
  * for differences. The {@link DiffResult} object retrieved can be queried
  * for a list of differences or printed using the {@link DiffResult#toString()}.</p>
  *
@@ -25,10 +25,10 @@ package org.apache.commons.lang3.builder;
  * and only if {@code d1.equals(d2)} implies {@code d1.diff(d2) == ""}.
  * It is strongly recommended that implementations are consistent with equals
  * to avoid confusion. Note that {@code null} is not an instance of any class
- * and {@code d1.diff(null)} should throw a {@code NullPointerException}.</p>
+ * and {@code d1.diff(null)} should throw a {@link NullPointerException}.</p>
  *
  * <p>
- * {@code Diffable} classes lend themselves well to unit testing, in which a
+ * {@link Diffable} classes lend themselves well to unit testing, in which a
  * easily readable description of the differences between an anticipated result and
  * an actual result can be retrieved. For example:
  * </p>
diff --git a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
index 48910a925..72fe72e3a 100644
--- a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
@@ -257,13 +257,13 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>Set {@code Class}es whose instances should be compared by calling their {@code equals}
+     * <p>Set {@link Class}es whose instances should be compared by calling their {@code equals}
      * although being in recursive mode. So the fields of theses classes will not be compared recursively by reflection.</p>
      *
      * <p>Here you should name classes having non-transient fields which are cache fields being set lazily.<br>
      * Prominent example being {@link String} class with its hash code cache field. Due to the importance
-     * of the {@code String} class, it is included in the default bypasses classes. Usually, if you use
-     * your own set of classes here, remember to include {@code String} class, too.</p>
+     * of the {@link String} class, it is included in the default bypasses classes. Usually, if you use
+     * your own set of classes here, remember to include {@link String} class, too.</p>
      * @param bypassReflectionClasses  classes to bypass reflection test
      * @return EqualsBuilder - used to chain calls.
      * @see #setTestRecursive(boolean)
@@ -298,7 +298,7 @@ public class EqualsBuilder implements Builder<Boolean> {
 
 
     /**
-     * <p>This method uses reflection to determine if the two {@code Object}s
+     * <p>This method uses reflection to determine if the two {@link Object}s
      * are equal.</p>
      *
      * <p>It uses {@code AccessibleObject.setAccessible} to gain access to private
@@ -324,7 +324,7 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>This method uses reflection to determine if the two {@code Object}s
+     * <p>This method uses reflection to determine if the two {@link Object}s
      * are equal.</p>
      *
      * <p>It uses {@code AccessibleObject.setAccessible} to gain access to private
@@ -350,7 +350,7 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>This method uses reflection to determine if the two {@code Object}s
+     * <p>This method uses reflection to determine if the two {@link Object}s
      * are equal.</p>
      *
      * <p>It uses {@code AccessibleObject.setAccessible} to gain access to private
@@ -361,7 +361,7 @@ public class EqualsBuilder implements Builder<Boolean> {
      *
      * <p>If the TestTransients parameter is set to {@code true}, transient
      * members will be tested, otherwise they are ignored, as they are likely
-     * derived fields, and not part of the value of the {@code Object}.</p>
+     * derived fields, and not part of the value of the {@link Object}.</p>
      *
      * <p>Static fields will not be tested. Superclass fields will be included.</p>
      *
@@ -377,7 +377,7 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>This method uses reflection to determine if the two {@code Object}s
+     * <p>This method uses reflection to determine if the two {@link Object}s
      * are equal.</p>
      *
      * <p>It uses {@code AccessibleObject.setAccessible} to gain access to private
@@ -388,7 +388,7 @@ public class EqualsBuilder implements Builder<Boolean> {
      *
      * <p>If the testTransients parameter is set to {@code true}, transient
      * members will be tested, otherwise they are ignored, as they are likely
-     * derived fields, and not part of the value of the {@code Object}.</p>
+     * derived fields, and not part of the value of the {@link Object}.</p>
      *
      * <p>Static fields will not be included. Superclass fields will be appended
      * up to and including the specified superclass. A null superclass is treated
@@ -411,7 +411,7 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>This method uses reflection to determine if the two {@code Object}s
+     * <p>This method uses reflection to determine if the two {@link Object}s
      * are equal.</p>
      *
      * <p>It uses {@code AccessibleObject.setAccessible} to gain access to private
@@ -422,7 +422,7 @@ public class EqualsBuilder implements Builder<Boolean> {
      *
      * <p>If the testTransients parameter is set to {@code true}, transient
      * members will be tested, otherwise they are ignored, as they are likely
-     * derived fields, and not part of the value of the {@code Object}.</p>
+     * derived fields, and not part of the value of the {@link Object}.</p>
      *
      * <p>Static fields will not be included. Superclass fields will be appended
      * up to and including the specified superclass. A null superclass is treated
@@ -430,7 +430,7 @@ public class EqualsBuilder implements Builder<Boolean> {
      *
      * <p>If the testRecursive parameter is set to {@code true}, non primitive
      * (and non primitive wrapper) field types will be compared by
-     * {@code EqualsBuilder} recursively instead of invoking their
+     * {@link EqualsBuilder} recursively instead of invoking their
      * {@code equals()} method. Leading to a deep reflection equals test.
      *
      * @param lhs  {@code this} object
@@ -474,7 +474,7 @@ public class EqualsBuilder implements Builder<Boolean> {
      *
      * <p>If the testTransients field is set to {@code true}, transient
      * members will be tested, otherwise they are ignored, as they are likely
-     * derived fields, and not part of the value of the {@code Object}.</p>
+     * derived fields, and not part of the value of the {@link Object}.</p>
      *
      * <p>Static fields will not be included. Superclass fields will be appended
      * up to and including the specified superclass in field {@code reflectUpToClass}.
@@ -610,7 +610,7 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>Test if two {@code Object}s are equal using either
+     * <p>Test if two {@link Object}s are equal using either
      * #{@link #reflectionAppend(Object, Object)}, if object are non
      * primitives (or wrapper of primitives) or if field {@code testRecursive}
      * is set to {@code false}. Otherwise, using their
@@ -646,7 +646,7 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>Test if an {@code Object} is equal to an array.</p>
+     * <p>Test if an {@link Object} is equal to an array.</p>
      *
      * @param lhs  the left hand object, an array
      * @param rhs  the right hand object
@@ -765,7 +765,7 @@ public class EqualsBuilder implements Builder<Boolean> {
      * <p>This handles NaNs, Infinities, and {@code -0.0}.</p>
      *
      * <p>It is compatible with the hash code generated by
-     * {@code HashCodeBuilder}.</p>
+     * {@link HashCodeBuilder}.</p>
      *
      * @param lhs  the left hand {@code double}
      * @param rhs  the right hand {@code double}
@@ -785,7 +785,7 @@ public class EqualsBuilder implements Builder<Boolean> {
      * <p>This handles NaNs, Infinities, and {@code -0.0}.</p>
      *
      * <p>It is compatible with the hash code generated by
-     * {@code HashCodeBuilder}.</p>
+     * {@link HashCodeBuilder}.</p>
      *
      * @param lhs  the left hand {@code float}
      * @param rhs  the right hand {@code float}
@@ -814,7 +814,7 @@ public class EqualsBuilder implements Builder<Boolean> {
     }
 
     /**
-     * <p>Performs a deep comparison of two {@code Object} arrays.</p>
+     * <p>Performs a deep comparison of two {@link Object} arrays.</p>
      *
      * <p>This also will be called for the top level of
      * multi-dimensional, ragged, and multi-typed arrays.</p>
diff --git a/src/main/java/org/apache/commons/lang3/builder/HashCodeBuilder.java b/src/main/java/org/apache/commons/lang3/builder/HashCodeBuilder.java
index 46167659c..48b177eb0 100644
--- a/src/main/java/org/apache/commons/lang3/builder/HashCodeBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/HashCodeBuilder.java
@@ -170,7 +170,7 @@ public class HashCodeBuilder implements Builder<Integer> {
 
     /**
      * <p>
-     * Appends the fields and values defined by the given object of the given {@code Class}.
+     * Appends the fields and values defined by the given object of the given {@link Class}.
      * </p>
      *
      * @param object
@@ -228,7 +228,7 @@ public class HashCodeBuilder implements Builder<Integer> {
      *
      * <p>
      * Transient members will be not be used, as they are likely derived fields, and not part of the value of the
-     * {@code Object}.
+     * {@link Object}.
      * </p>
      *
      * <p>
@@ -272,7 +272,7 @@ public class HashCodeBuilder implements Builder<Integer> {
      *
      * <p>
      * If the TestTransients parameter is set to {@code true}, transient members will be tested, otherwise they
-     * are ignored, as they are likely derived fields, and not part of the value of the {@code Object}.
+     * are ignored, as they are likely derived fields, and not part of the value of the {@link Object}.
      * </p>
      *
      * <p>
@@ -319,7 +319,7 @@ public class HashCodeBuilder implements Builder<Integer> {
      *
      * <p>
      * If the TestTransients parameter is set to {@code true}, transient members will be tested, otherwise they
-     * are ignored, as they are likely derived fields, and not part of the value of the {@code Object}.
+     * are ignored, as they are likely derived fields, and not part of the value of the {@link Object}.
      * </p>
      *
      * <p>
@@ -386,7 +386,7 @@ public class HashCodeBuilder implements Builder<Integer> {
      *
      * <P>
      * If the TestTransients parameter is set to {@code true}, transient members will be tested, otherwise they
-     * are ignored, as they are likely derived fields, and not part of the value of the {@code Object}.
+     * are ignored, as they are likely derived fields, and not part of the value of the {@link Object}.
      * </p>
      *
      * <p>
@@ -426,7 +426,7 @@ public class HashCodeBuilder implements Builder<Integer> {
      *
      * <p>
      * Transient members will be not be used, as they are likely derived fields, and not part of the value of the
-     * {@code Object}.
+     * {@link Object}.
      * </p>
      *
      * <p>
@@ -465,7 +465,7 @@ public class HashCodeBuilder implements Builder<Integer> {
      *
      * <p>
      * Transient members will be not be used, as they are likely derived fields, and not part of the value of the
-     * {@code Object}.
+     * {@link Object}.
      * </p>
      *
      * <p>
@@ -826,7 +826,7 @@ public class HashCodeBuilder implements Builder<Integer> {
 
     /**
      * <p>
-     * Append a {@code hashCode} for an {@code Object}.
+     * Append a {@code hashCode} for an {@link Object}.
      * </p>
      *
      * @param object
@@ -882,7 +882,7 @@ public class HashCodeBuilder implements Builder<Integer> {
 
     /**
      * <p>
-     * Append a {@code hashCode} for an {@code Object} array.
+     * Append a {@code hashCode} for an {@link Object} array.
      * </p>
      *
      * @param array
diff --git a/src/main/java/org/apache/commons/lang3/builder/RecursiveToStringStyle.java b/src/main/java/org/apache/commons/lang3/builder/RecursiveToStringStyle.java
index 6895869d7..ef974e8e5 100644
--- a/src/main/java/org/apache/commons/lang3/builder/RecursiveToStringStyle.java
+++ b/src/main/java/org/apache/commons/lang3/builder/RecursiveToStringStyle.java
@@ -84,13 +84,13 @@ public class RecursiveToStringStyle extends ToStringStyle {
     }
 
     /**
-     * Returns whether or not to recursively format the given {@code Class}.
+     * Returns whether or not to recursively format the given {@link Class}.
      * By default, this method always returns {@code true}, but may be overwritten by
      * sub-classes to filter specific classes.
      *
      * @param clazz
      *            The class to test.
-     * @return Whether or not to recursively format the given {@code Class}.
+     * @return Whether or not to recursively format the given {@link Class}.
      */
     protected boolean accept(final Class<?> clazz) {
         return true;
diff --git a/src/main/java/org/apache/commons/lang3/builder/ReflectionDiffBuilder.java b/src/main/java/org/apache/commons/lang3/builder/ReflectionDiffBuilder.java
index 5b60bd813..a0395e236 100644
--- a/src/main/java/org/apache/commons/lang3/builder/ReflectionDiffBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/ReflectionDiffBuilder.java
@@ -54,8 +54,8 @@ import org.apache.commons.lang3.reflect.FieldUtils;
  * </pre>
  *
  * <p>
- * The {@code ToStringStyle} passed to the constructor is embedded in the
- * returned {@code DiffResult} and influences the style of the
+ * The {@link ToStringStyle} passed to the constructor is embedded in the
+ * returned {@link DiffResult} and influences the style of the
  * {@code DiffResult.toString()} method. This style choice can be overridden by
  * calling {@link DiffResult#toString(ToStringStyle)}.
  * </p>
diff --git a/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java b/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java
index a763029e9..1e2fd132c 100644
--- a/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java
@@ -70,7 +70,7 @@ import org.apache.commons.lang3.Validate;
  * <li>{@link #getValue(java.lang.reflect.Field)}</li>
  * </ul>
  * <p>
- * For example, this method does <i>not</i> include the {@code password} field in the returned {@code String}:
+ * For example, this method does <i>not</i> include the {@code password} field in the returned {@link String}:
  * </p>
  * <pre>
  * public String toString() {
@@ -104,7 +104,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
 
     /**
      * <p>
-     * Builds a {@code toString} value using the default {@code ToStringStyle} through reflection.
+     * Builds a {@code toString} value using the default {@link ToStringStyle} through reflection.
      * </p>
      *
      * <p>
@@ -148,7 +148,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * </p>
      *
      * <p>
-     * If the style is {@code null}, the default {@code ToStringStyle} is used.
+     * If the style is {@code null}, the default {@link ToStringStyle} is used.
      * </p>
      *
      * @param object
@@ -157,7 +157,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      *            the style of the {@code toString} to create, may be {@code null}
      * @return the String result
      * @throws IllegalArgumentException
-     *             if the Object or {@code ToStringStyle} is {@code null}
+     *             if the Object or {@link ToStringStyle} is {@code null}
      *
      * @see ToStringExclude
      * @see ToStringSummary
@@ -187,7 +187,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * </p>
      *
      * <p>
-     * If the style is {@code null}, the default {@code ToStringStyle} is used.
+     * If the style is {@code null}, the default {@link ToStringStyle} is used.
      * </p>
      *
      * @param object
@@ -233,7 +233,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * </p>
      *
      * <p>
-     * If the style is {@code null}, the default {@code ToStringStyle} is used.
+     * If the style is {@code null}, the default {@link ToStringStyle} is used.
      * </p>
      *
      * @param object
@@ -283,7 +283,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * </p>
      *
      * <p>
-     * If the style is {@code null}, the default {@code ToStringStyle} is used.
+     * If the style is {@code null}, the default {@link ToStringStyle} is used.
      * </p>
      *
      * @param <T>
@@ -340,7 +340,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * </p>
      *
      * <p>
-     * If the style is {@code null}, the default {@code ToStringStyle} is used.
+     * If the style is {@code null}, the default {@link ToStringStyle} is used.
      * </p>
      *
      * @param <T>
@@ -521,7 +521,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * @param style
      *            the style of the {@code toString} to create, may be {@code null}
      * @param buffer
-     *            the {@code StringBuffer} to populate, may be {@code null}
+     *            the {@link StringBuffer} to populate, may be {@code null}
      * @throws IllegalArgumentException
      *             if the Object passed in is {@code null}
      */
@@ -539,7 +539,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * @param style
      *            the style of the {@code toString} to create, may be {@code null}
      * @param buffer
-     *            the {@code StringBuffer} to populate, may be {@code null}
+     *            the {@link StringBuffer} to populate, may be {@code null}
      * @param reflectUpToClass
      *            the superclass to reflect up to (inclusive), may be {@code null}
      * @param outputTransients
@@ -567,7 +567,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      * @param style
      *            the style of the {@code toString} to create, may be {@code null}
      * @param buffer
-     *            the {@code StringBuffer} to populate, may be {@code null}
+     *            the {@link StringBuffer} to populate, may be {@code null}
      * @param reflectUpToClass
      *            the superclass to reflect up to (inclusive), may be {@code null}
      * @param outputTransients
@@ -590,7 +590,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
     }
 
     /**
-     * Returns whether or not to append the given {@code Field}.
+     * Returns whether or not to append the given {@link Field}.
      * <ul>
      * <li>Transient fields are appended only if {@link #isAppendTransients()} returns {@code true}.
      * <li>Static fields are appended only if {@link #isAppendStatics()} returns {@code true}.
@@ -599,7 +599,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
      *
      * @param field
      *            The Field to test.
-     * @return Whether or not to append the given {@code Field}.
+     * @return Whether or not to append the given {@link Field}.
      */
     protected boolean accept(final Field field) {
         if (field.getName().indexOf(ClassUtils.INNER_CLASS_SEPARATOR_CHAR) != -1) {
@@ -739,7 +739,7 @@ public class ReflectionToStringBuilder extends ToStringBuilder {
 
     /**
      * <p>
-     * Append to the {@code toString} an {@code Object} array.
+     * Append to the {@code toString} an {@link Object} array.
      * </p>
      *
      * @param array
diff --git a/src/main/java/org/apache/commons/lang3/builder/StandardToStringStyle.java b/src/main/java/org/apache/commons/lang3/builder/StandardToStringStyle.java
index b60f13dca..7e0b445b9 100644
--- a/src/main/java/org/apache/commons/lang3/builder/StandardToStringStyle.java
+++ b/src/main/java/org/apache/commons/lang3/builder/StandardToStringStyle.java
@@ -16,6 +16,10 @@
  */
 package org.apache.commons.lang3.builder;
 
+import java.lang.reflect.Array;
+import java.util.Collection;
+import java.util.Map;
+
 /**
  * <p>Works with {@link ToStringBuilder} to create a {@code toString}.</p>
  *
@@ -398,8 +402,8 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Gets the text to output when a {@code Collection},
-     * {@code Map} or {@code Array} size is output.</p>
+     * <p>Gets the text to output when a {@link Collection},
+     * {@link Map} or {@link Array} size is output.</p>
      *
      * <p>This is output before the size value.</p>
      *
@@ -411,8 +415,8 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Sets the start text to output when a {@code Collection},
-     * {@code Map} or {@code Array} size is output.</p>
+     * <p>Sets the start text to output when a {@link Collection},
+     * {@link Map} or {@link Array} size is output.</p>
      *
      * <p>This is output before the size value.</p>
      *
@@ -427,8 +431,8 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Gets the end text to output when a {@code Collection},
-     * {@code Map} or {@code Array} size is output.</p>
+     * <p>Gets the end text to output when a {@link Collection},
+     * {@link Map} or {@link Array} size is output.</p>
      *
      * <p>This is output after the size value.</p>
      *
@@ -440,8 +444,8 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Sets the end text to output when a {@code Collection},
-     * {@code Map} or {@code Array} size is output.</p>
+     * <p>Sets the end text to output when a {@link Collection},
+     * {@link Map} or {@link Array} size is output.</p>
      *
      * <p>This is output after the size value.</p>
      *
@@ -456,7 +460,7 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Gets the start text to output when an {@code Object} is
+     * <p>Gets the start text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <P>This is output before the size value.</p>
@@ -469,7 +473,7 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Sets the start text to output when an {@code Object} is
+     * <p>Sets the start text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <p>This is output before the size value.</p>
@@ -485,7 +489,7 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Gets the end text to output when an {@code Object} is
+     * <p>Gets the end text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <p>This is output after the size value.</p>
@@ -498,7 +502,7 @@ public class StandardToStringStyle extends ToStringStyle {
     }
 
     /**
-     * <p>Sets the end text to output when an {@code Object} is
+     * <p>Sets the end text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <p>This is output after the size value.</p>
diff --git a/src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java b/src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java
index 5830051a1..983cb68ad 100644
--- a/src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java
@@ -94,11 +94,11 @@ public class ToStringBuilder implements Builder<String> {
     private static volatile ToStringStyle defaultStyle = ToStringStyle.DEFAULT_STYLE;
 
     /**
-     * <p>Gets the default {@code ToStringStyle} to use.</p>
+     * <p>Gets the default {@link ToStringStyle} to use.</p>
      *
      * <p>This method gets a singleton default value, typically for the whole JVM.
      * Changing this default should generally only be done during application startup.
-     * It is recommended to pass a {@code ToStringStyle} to the constructor instead
+     * It is recommended to pass a {@link ToStringStyle} to the constructor instead
      * of using this global default.</p>
      *
      * <p>This method can be used from multiple threads.
@@ -109,25 +109,25 @@ public class ToStringBuilder implements Builder<String> {
      * <p>One reason for changing the default could be to have a verbose style during
      * development and a compact style in production.</p>
      *
-     * @return the default {@code ToStringStyle}, never null
+     * @return the default {@link ToStringStyle}, never null
      */
     public static ToStringStyle getDefaultStyle() {
         return defaultStyle;
     }
 
     /**
-     * <p>Sets the default {@code ToStringStyle} to use.</p>
+     * <p>Sets the default {@link ToStringStyle} to use.</p>
      *
      * <p>This method sets a singleton default value, typically for the whole JVM.
      * Changing this default should generally only be done during application startup.
-     * It is recommended to pass a {@code ToStringStyle} to the constructor instead
+     * It is recommended to pass a {@link ToStringStyle} to the constructor instead
      * of changing this global default.</p>
      *
      * <p>This method is not intended for use from multiple threads.
      * Internally, a {@code volatile} variable is used to provide the guarantee
      * that the latest value set is the value returned from {@link #getDefaultStyle}.</p>
      *
-     * @param style  the default {@code ToStringStyle}
+     * @param style  the default {@link ToStringStyle}
      * @throws IllegalArgumentException if the style is {@code null}
      */
     public static void setDefaultStyle(final ToStringStyle style) {
@@ -135,7 +135,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Uses {@code ReflectionToStringBuilder} to generate a
+     * <p>Uses {@link ReflectionToStringBuilder} to generate a
      * {@code toString} for the specified object.</p>
      *
      * @param object  the Object to be output
@@ -147,7 +147,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Uses {@code ReflectionToStringBuilder} to generate a
+     * <p>Uses {@link ReflectionToStringBuilder} to generate a
      * {@code toString} for the specified object.</p>
      *
      * @param object  the Object to be output
@@ -160,7 +160,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Uses {@code ReflectionToStringBuilder} to generate a
+     * <p>Uses {@link ReflectionToStringBuilder} to generate a
      * {@code toString} for the specified object.</p>
      *
      * @param object  the Object to be output
@@ -174,7 +174,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Uses {@code ReflectionToStringBuilder} to generate a
+     * <p>Uses {@link ReflectionToStringBuilder} to generate a
      * {@code toString} for the specified object.</p>
      *
      * @param <T> the type of the object
@@ -239,7 +239,7 @@ public class ToStringBuilder implements Builder<String> {
      *
      * @param object  the Object to build a {@code toString} for, not recommended to be null
      * @param style  the style of the {@code toString} to create, null uses the default style
-     * @param buffer  the {@code StringBuffer} to populate, may be null
+     * @param buffer  the {@link StringBuffer} to populate, may be null
      */
     public ToStringBuilder(final Object object, ToStringStyle style, StringBuffer buffer) {
         if (style == null) {
@@ -424,7 +424,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * value.</p>
      *
      * @param obj  the value to add to the {@code toString}
@@ -436,7 +436,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * array.</p>
      *
      * @param array  the array to add to the {@code toString}
@@ -793,7 +793,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * value.</p>
      *
      * @param fieldName  the field name
@@ -806,7 +806,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * value.</p>
      *
      * @param fieldName  the field name
@@ -821,7 +821,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * array.</p>
      *
      * @param fieldName  the field name
@@ -834,7 +834,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * array.</p>
      *
      * <p>A boolean parameter controls the level of detail to show.
@@ -904,7 +904,7 @@ public class ToStringBuilder implements Builder<String> {
      * </code> method. Appends the class name followed by
      * {@link System#identityHashCode(java.lang.Object)}.</p>
      *
-     * @param srcObject  the {@code Object} whose class name and id to output
+     * @param srcObject  the {@link Object} whose class name and id to output
      * @return this
      * @since 2.0
      */
@@ -916,7 +916,7 @@ public class ToStringBuilder implements Builder<String> {
     /**
      * <p>Append the {@code toString} from the superclass.</p>
      *
-     * <p>This method assumes that the superclass uses the same {@code ToStringStyle}
+     * <p>This method assumes that the superclass uses the same {@link ToStringStyle}
      * as this one.</p>
      *
      * <p>If {@code superToString} is {@code null}, no change is made.</p>
@@ -950,7 +950,7 @@ public class ToStringBuilder implements Builder<String> {
      *       toString();
      *   }</pre>
      *
-     * <p>This method assumes that the other object uses the same {@code ToStringStyle}
+     * <p>This method assumes that the other object uses the same {@link ToStringStyle}
      * as this one.</p>
      *
      * <p>If the {@code toString} is {@code null}, no change is made.</p>
@@ -967,7 +967,7 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Returns the {@code Object} being output.</p>
+     * <p>Returns the {@link Object} being output.</p>
      *
      * @return The object being output.
      * @since 2.0
@@ -977,18 +977,18 @@ public class ToStringBuilder implements Builder<String> {
     }
 
     /**
-     * <p>Gets the {@code StringBuffer} being populated.</p>
+     * <p>Gets the {@link StringBuffer} being populated.</p>
      *
-     * @return the {@code StringBuffer} being populated
+     * @return the {@link StringBuffer} being populated
      */
     public StringBuffer getStringBuffer() {
         return buffer;
     }
 
     /**
-     * <p>Gets the {@code ToStringStyle} being used.</p>
+     * <p>Gets the {@link ToStringStyle} being used.</p>
      *
-     * @return the {@code ToStringStyle} being used
+     * @return the {@link ToStringStyle} being used
      * @since 2.0
      */
     public ToStringStyle getStyle() {
diff --git a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
index 70f642f32..8f71b97ba 100644
--- a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
+++ b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
@@ -30,10 +30,10 @@ import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 
 /**
- * <p>Controls {@code String} formatting for {@link ToStringBuilder}.
- * The main public interface is always via {@code ToStringBuilder}.</p>
+ * <p>Controls {@link String} formatting for {@link ToStringBuilder}.
+ * The main public interface is always via {@link ToStringBuilder}.</p>
  *
- * <p>These classes are intended to be used as {@code Singletons}.
+ * <p>These classes are intended to be used as <em>singletons</em>.
  * There is no need to instantiate a new style each time. A program
  * will generally use one of the predefined constants on this class.
  * Alternatively, the {@link StandardToStringStyle} class can be used
@@ -42,7 +42,7 @@ import org.apache.commons.lang3.StringUtils;
  *
  * <p>If required, a subclass can override as many or as few of the
  * methods as it requires. Each object type (from {@code boolean}
- * to {@code long} to {@code Object} to {@code int[]}) has
+ * to {@code long} to {@link Object} to {@code int[]}) has
  * its own methods to output it. Most have two versions, detail and summary.
  *
  * <p>For example, the detail version of the array based methods will
@@ -363,7 +363,7 @@ public abstract class ToStringStyle implements Serializable {
      *
      * <p>A {@code null} {@code superToString} is ignored.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param superToString  the {@code super.toString()}
      * @since 2.0
      */
@@ -377,7 +377,7 @@ public abstract class ToStringStyle implements Serializable {
      *
      * <p>A {@code null} {@code toString} is ignored.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param toString  the additional {@code toString}
      * @since 2.0
      */
@@ -398,8 +398,8 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the start of data indicator.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
-     * @param object  the {@code Object} to build a {@code toString} for
+     * @param buffer  the {@link StringBuffer} to populate
+     * @param object  the {@link Object} to build a {@code toString} for
      */
     public void appendStart(final StringBuffer buffer, final Object object) {
         if (object != null) {
@@ -415,8 +415,8 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the end of data indicator.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
-     * @param object  the {@code Object} to build a
+     * @param buffer  the {@link StringBuffer} to populate
+     * @param object  the {@link Object} to build a
      *  {@code toString} for.
      */
     public void appendEnd(final StringBuffer buffer, final Object object) {
@@ -430,7 +430,7 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Remove the last field separator from the buffer.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @since 2.0
      */
     protected void removeLastFieldSeparator(final StringBuffer buffer) {
@@ -440,11 +440,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * value, printing the full {@code toString} of the
-     * {@code Object} passed in.</p>
+     * {@link Object} passed in.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -464,19 +464,19 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object},
+     * <p>Append to the {@code toString} an {@link Object},
      * correctly interpreting its type.</p>
      *
      * <p>This method performs the main lookup by Class type to correctly
-     * route arrays, {@code Collections}, {@code Maps} and
-     * {@code Objects} to the appropriate method.</p>
+     * route arrays, {@link Collection}s, {@link Map}s and
+     * {@link Objects} to the appropriate method.</p>
      *
      * <p>Either detail or summary views can be specified.</p>
      *
      * <p>If a cycle is detected, an object will be appended with the
      * {@code Object.toString()} format.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString},
      *  not {@code null}
@@ -580,11 +580,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * value that has been detected to participate in a cycle. This
      * implementation will print the standard string value of the value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString},
      *  not {@code null}
@@ -596,10 +596,10 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
-     * value, printing the full detail of the {@code Object}.</p>
+     * <p>Append to the {@code toString} an {@link Object}
+     * value, printing the full detail of the {@link Object}.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString},
      *  not {@code null}
@@ -609,11 +609,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} a {@code Collection}.</p>
+     * <p>Append to the {@code toString} a {@link Collection}.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
-     * @param coll  the {@code Collection} to add to the
+     * @param coll  the {@link Collection} to add to the
      *  {@code toString}, not {@code null}
      */
     protected void appendDetail(final StringBuffer buffer, final String fieldName, final Collection<?> coll) {
@@ -621,11 +621,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} a {@code Map}.</p>
+     * <p>Append to the {@code toString} a {@link Map}.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
-     * @param map  the {@code Map} to add to the {@code toString},
+     * @param map  the {@link Map} to add to the {@code toString},
      *  not {@code null}
      */
     protected void appendDetail(final StringBuffer buffer, final String fieldName, final Map<?, ?> map) {
@@ -633,10 +633,10 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
-     * value, printing a summary of the {@code Object}.</P>
+     * <p>Append to the {@code toString} an {@link Object}
+     * value, printing a summary of the {@link Object}.</P>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString},
      *  not {@code null}
@@ -651,7 +651,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code long}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -665,7 +665,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code long}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -677,7 +677,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} an {@code int}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -691,7 +691,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} an {@code int}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -703,7 +703,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code short}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -717,7 +717,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code short}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -729,7 +729,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code byte}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -743,7 +743,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code byte}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -755,7 +755,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code char}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -769,7 +769,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code char}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -781,7 +781,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code double}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -795,7 +795,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code double}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -807,7 +807,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code float}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -821,7 +821,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code float}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -833,7 +833,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code boolean}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param value  the value to add to the {@code toString}
      */
@@ -847,7 +847,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code boolean}
      * value.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param value  the value to add to the {@code toString}
      */
@@ -856,10 +856,10 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Append to the {@code toString} an {@code Object}
+     * <p>Append to the {@code toString} an {@link Object}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the toString
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -883,9 +883,9 @@ public abstract class ToStringStyle implements Serializable {
 
     /**
      * <p>Append to the {@code toString} the detail of an
-     * {@code Object} array.</p>
+     * {@link Object} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -901,9 +901,9 @@ public abstract class ToStringStyle implements Serializable {
 
     /**
      * <p>Append to the {@code toString} the detail of an
-     * {@code Object} array item.</p>
+     * {@link Object} array item.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param i the array item index to add
      * @param item the array item to add
@@ -923,7 +923,7 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the detail of an array type.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -941,9 +941,9 @@ public abstract class ToStringStyle implements Serializable {
 
     /**
      * <p>Append to the {@code toString} a summary of an
-     * {@code Object} array.</p>
+     * {@link Object} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -956,7 +956,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code long}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the {@code toString}
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -982,7 +982,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of a
      * {@code long} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1002,7 +1002,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of a
      * {@code long} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1015,7 +1015,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} an {@code int}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the {@code toString}
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -1041,7 +1041,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of an
      * {@code int} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1061,7 +1061,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of an
      * {@code int} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1074,7 +1074,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code short}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the {@code toString}
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -1100,7 +1100,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of a
      * {@code short} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1120,7 +1120,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of a
      * {@code short} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1133,7 +1133,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code byte}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the {@code toString}
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -1159,7 +1159,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of a
      * {@code byte} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1179,7 +1179,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of a
      * {@code byte} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1192,7 +1192,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code char}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the {@code toString}
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -1218,7 +1218,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of a
      * {@code char} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1238,7 +1238,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of a
      * {@code char} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1251,7 +1251,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code double}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the toString
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -1277,7 +1277,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of a
      * {@code double} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1297,7 +1297,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of a
      * {@code double} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1310,7 +1310,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code float}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the toString
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -1336,7 +1336,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of a
      * {@code float} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1356,7 +1356,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of a
      * {@code float} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1369,7 +1369,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a {@code boolean}
      * array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      * @param array  the array to add to the toString
      * @param fullDetail  {@code true} for detail, {@code false}
@@ -1395,7 +1395,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} the detail of a
      * {@code boolean} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1415,7 +1415,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a summary of a
      * {@code boolean} array.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param array  the array to add to the {@code toString},
      *  not {@code null}
@@ -1427,8 +1427,8 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the class name.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
-     * @param object  the {@code Object} whose name to output
+     * @param buffer  the {@link StringBuffer} to populate
+     * @param object  the {@link Object} whose name to output
      */
     protected void appendClassName(final StringBuffer buffer, final Object object) {
         if (useClassName && object != null) {
@@ -1444,8 +1444,8 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append the {@link System#identityHashCode(java.lang.Object)}.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
-     * @param object  the {@code Object} whose id to output
+     * @param buffer  the {@link StringBuffer} to populate
+     * @param object  the {@link Object} whose id to output
      */
     protected void appendIdentityHashCode(final StringBuffer buffer, final Object object) {
         if (this.isUseIdentityHashCode() && object != null) {
@@ -1458,7 +1458,7 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the content start.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      */
     protected void appendContentStart(final StringBuffer buffer) {
         buffer.append(contentStart);
@@ -1467,7 +1467,7 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the content end.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      */
     protected void appendContentEnd(final StringBuffer buffer) {
         buffer.append(contentEnd);
@@ -1478,7 +1478,7 @@ public abstract class ToStringStyle implements Serializable {
      *
      * <p>The default indicator is {@code '&lt;null&gt;'}.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      */
     protected void appendNullText(final StringBuffer buffer, final String fieldName) {
@@ -1488,7 +1488,7 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the field separator.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      */
     protected void appendFieldSeparator(final StringBuffer buffer) {
         buffer.append(fieldSeparator);
@@ -1497,7 +1497,7 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the field start.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name
      */
     protected void appendFieldStart(final StringBuffer buffer, final String fieldName) {
@@ -1510,7 +1510,7 @@ public abstract class ToStringStyle implements Serializable {
     /**
      * <p>Append to the {@code toString} the field end.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      */
     protected void appendFieldEnd(final StringBuffer buffer, final String fieldName) {
@@ -1521,14 +1521,14 @@ public abstract class ToStringStyle implements Serializable {
      * <p>Append to the {@code toString} a size summary.</p>
      *
      * <p>The size summary is used to summarize the contents of
-     * {@code Collections}, {@code Maps} and arrays.</p>
+     * {@link Collection}s, {@link Map}s and arrays.</p>
      *
      * <p>The output consists of a prefix, the passed in size
      * and a suffix.</p>
      *
      * <p>The default format is {@code '&lt;size=n&gt;'}.</p>
      *
-     * @param buffer  the {@code StringBuffer} to populate
+     * @param buffer  the {@link StringBuffer} to populate
      * @param fieldName  the field name, typically not used as already appended
      * @param size  the size to append
      */
@@ -1565,7 +1565,7 @@ public abstract class ToStringStyle implements Serializable {
      * <p>The short class name is the classname excluding
      * the package name.</p>
      *
-     * @param cls  the {@code Class} to get the short name of
+     * @param cls  the {@link Class} to get the short name of
      * @return the short name
      */
     protected String getShortClassName(final Class<?> cls) {
@@ -1924,8 +1924,8 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Gets the start text to output when a {@code Collection},
-     * {@code Map} or array size is output.</p>
+     * <p>Gets the start text to output when a {@link Collection},
+     * {@link Map} or array size is output.</p>
      *
      * <p>This is output before the size value.</p>
      *
@@ -1936,8 +1936,8 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Sets the start text to output when a {@code Collection},
-     * {@code Map} or array size is output.</p>
+     * <p>Sets the start text to output when a {@link Collection},
+     * {@link Map} or array size is output.</p>
      *
      * <p>This is output before the size value.</p>
      *
@@ -1954,8 +1954,8 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Gets the end text to output when a {@code Collection},
-     * {@code Map} or array size is output.</p>
+     * <p>Gets the end text to output when a {@link Collection},
+     * {@link Map} or array size is output.</p>
      *
      * <p>This is output after the size value.</p>
      *
@@ -1966,8 +1966,8 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Sets the end text to output when a {@code Collection},
-     * {@code Map} or array size is output.</p>
+     * <p>Sets the end text to output when a {@link Collection},
+     * {@link Map} or array size is output.</p>
      *
      * <p>This is output after the size value.</p>
      *
@@ -1984,7 +1984,7 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Gets the start text to output when an {@code Object} is
+     * <p>Gets the start text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <p>This is output before the size value.</p>
@@ -1996,7 +1996,7 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Sets the start text to output when an {@code Object} is
+     * <p>Sets the start text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <p>This is output before the size value.</p>
@@ -2014,7 +2014,7 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Gets the end text to output when an {@code Object} is
+     * <p>Gets the end text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <p>This is output after the size value.</p>
@@ -2026,7 +2026,7 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Sets the end text to output when an {@code Object} is
+     * <p>Sets the end text to output when an {@link Object} is
      * output in summary mode.</p>
      *
      * <p>This is output after the size value.</p>
@@ -2044,10 +2044,10 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>Default {@code ToStringStyle}.</p>
+     * <p>Default {@link ToStringStyle}.</p>
      *
      * <p>This is an inner class rather than using
-     * {@code StandardToStringStyle} to ensure its immutability.</p>
+     * {@link StandardToStringStyle} to ensure its immutability.</p>
      */
     private static final class DefaultToStringStyle extends ToStringStyle {
 
@@ -2067,7 +2067,7 @@ public abstract class ToStringStyle implements Serializable {
         }
 
         /**
-         * <p>Ensure {@code Singleton} after serialization.</p>
+         * <p>Ensure {@link Singleton} after serialization.</p>
          *
          * @return the singleton
          */
@@ -2078,11 +2078,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>{@code ToStringStyle} that does not print out
+     * <p>{@link ToStringStyle} that does not print out
      * the field names.</p>
      *
      * <p>This is an inner class rather than using
-     * {@code StandardToStringStyle} to ensure its immutability.
+     * {@link StandardToStringStyle} to ensure its immutability.
      */
     private static final class NoFieldNameToStringStyle extends ToStringStyle {
 
@@ -2098,7 +2098,7 @@ public abstract class ToStringStyle implements Serializable {
         }
 
         /**
-         * <p>Ensure {@code Singleton} after serialization.</p>
+         * <p>Ensure {@link Singleton} after serialization.</p>
          *
          * @return the singleton
          */
@@ -2109,11 +2109,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>{@code ToStringStyle} that prints out the short
+     * <p>{@link ToStringStyle} that prints out the short
      * class name and no identity hashcode.</p>
      *
      * <p>This is an inner class rather than using
-     * {@code StandardToStringStyle} to ensure its immutability.</p>
+     * {@link StandardToStringStyle} to ensure its immutability.</p>
      */
     private static final class ShortPrefixToStringStyle extends ToStringStyle {
 
@@ -2140,11 +2140,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>{@code ToStringStyle} that does not print out the
+     * <p>{@link ToStringStyle} that does not print out the
      * classname, identity hashcode, content start or field name.</p>
      *
      * <p>This is an inner class rather than using
-     * {@code StandardToStringStyle} to ensure its immutability.</p>
+     * {@link StandardToStringStyle} to ensure its immutability.</p>
      */
     private static final class SimpleToStringStyle extends ToStringStyle {
 
@@ -2174,10 +2174,10 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>{@code ToStringStyle} that outputs on multiple lines.</p>
+     * <p>{@link ToStringStyle} that outputs on multiple lines.</p>
      *
      * <p>This is an inner class rather than using
-     * {@code StandardToStringStyle} to ensure its immutability.</p>
+     * {@link StandardToStringStyle} to ensure its immutability.</p>
      */
     private static final class MultiLineToStringStyle extends ToStringStyle {
 
@@ -2196,7 +2196,7 @@ public abstract class ToStringStyle implements Serializable {
         }
 
         /**
-         * <p>Ensure {@code Singleton} after serialization.</p>
+         * <p>Ensure {@link Singleton} after serialization.</p>
          *
          * @return the singleton
          */
@@ -2207,11 +2207,11 @@ public abstract class ToStringStyle implements Serializable {
     }
 
     /**
-     * <p>{@code ToStringStyle} that does not print out the classname
+     * <p>{@link ToStringStyle} that does not print out the classname
      * and identity hash code but prints content start and field names.</p>
      *
      * <p>This is an inner class rather than using
-     * {@code StandardToStringStyle} to ensure its immutability.</p>
+     * {@link StandardToStringStyle} to ensure its immutability.</p>
      */
     private static final class NoClassNameToStringStyle extends ToStringStyle {
 
@@ -2228,7 +2228,7 @@ public abstract class ToStringStyle implements Serializable {
         }
 
         /**
-         * <p>Ensure {@code Singleton} after serialization.</p>
+         * <p>Ensure {@link Singleton} after serialization.</p>
          *
          * @return the singleton
          */
@@ -2240,12 +2240,12 @@ public abstract class ToStringStyle implements Serializable {
 
     /**
      * <p>
-     * {@code ToStringStyle} that outputs with JSON format.
+     * {@link ToStringStyle} that outputs with JSON format.
      * </p>
      *
      * <p>
      * This is an inner class rather than using
-     * {@code StandardToStringStyle} to ensure its immutability.
+     * {@link StandardToStringStyle} to ensure its immutability.
      * </p>
      *
      * @since 3.4
@@ -2560,7 +2560,7 @@ public abstract class ToStringStyle implements Serializable {
 
         /**
          * <p>
-         * Ensure {@code Singleton} after serialization.
+         * Ensure {@link Singleton} after serialization.
          * </p>
          *
          * @return the singleton
diff --git a/src/main/java/org/apache/commons/lang3/compare/ComparableUtils.java b/src/main/java/org/apache/commons/lang3/compare/ComparableUtils.java
index 485a618b6..4241363dc 100644
--- a/src/main/java/org/apache/commons/lang3/compare/ComparableUtils.java
+++ b/src/main/java/org/apache/commons/lang3/compare/ComparableUtils.java
@@ -207,7 +207,7 @@ public class ComparableUtils {
     }
 
     /**
-     * Returns the greater of two {@code Comparable} values, ignoring null.
+     * Returns the greater of two {@link Comparable} values, ignoring null.
      * <p>
      * For three or more values, use {@link ObjectUtils#max(Comparable...)}.
      * </p>
@@ -224,7 +224,7 @@ public class ComparableUtils {
     }
 
     /**
-     * Returns the lesser of two {@code Comparable} values, ignoring null.
+     * Returns the lesser of two {@link Comparable} values, ignoring null.
      * <p>
      * For three or more values, use {@link ObjectUtils#min(Comparable...)}.
      * </p>
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/AbstractCircuitBreaker.java b/src/main/java/org/apache/commons/lang3/concurrent/AbstractCircuitBreaker.java
index a27d7f846..27c530245 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/AbstractCircuitBreaker.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/AbstractCircuitBreaker.java
@@ -41,7 +41,7 @@ public abstract class AbstractCircuitBreaker<T> implements CircuitBreaker<T> {
     private final PropertyChangeSupport changeSupport;
 
     /**
-     * Creates an {@code AbstractCircuitBreaker}. It also creates an internal {@code PropertyChangeSupport}.
+     * Creates an {@link AbstractCircuitBreaker}. It also creates an internal {@link PropertyChangeSupport}.
      */
     public AbstractCircuitBreaker() {
         changeSupport = new PropertyChangeSupport(this);
@@ -137,7 +137,7 @@ public abstract class AbstractCircuitBreaker<T> implements CircuitBreaker<T> {
      * An internal enumeration representing the different states of a circuit
      * breaker. This class also contains some logic for performing state
      * transitions. This is done to avoid complex if-conditions in the code of
-     * {@code CircuitBreaker}.
+     * {@link CircuitBreaker}.
      */
     protected enum State {
 
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java
index ac4b85e8a..d88af1f25 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java
@@ -20,25 +20,25 @@ import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * <p>
- * A specialized implementation of the {@code ConcurrentInitializer} interface
+ * A specialized implementation of the {@link ConcurrentInitializer} interface
  * based on an {@link AtomicReference} variable.
  * </p>
  * <p>
- * This class maintains a member field of type {@code AtomicReference}. It
+ * This class maintains a member field of type {@link AtomicReference}. It
  * implements the following algorithm to create and initialize an object in its
  * {@link #get()} method:
  * </p>
  * <ul>
- * <li>First it is checked whether the {@code AtomicReference} variable contains
+ * <li>First it is checked whether the {@link AtomicReference} variable contains
  * already a value. If this is the case, the value is directly returned.</li>
  * <li>Otherwise the {@link #initialize()} method is called. This method must be
  * defined in concrete subclasses to actually create the managed object.</li>
  * <li>After the object was created by {@link #initialize()} it is checked
- * whether the {@code AtomicReference} variable is still undefined. This has to
+ * whether the {@link AtomicReference} variable is still undefined. This has to
  * be done because in the meantime another thread may have initialized the
  * object. If the reference is still empty, the newly created object is stored
  * in it and returned by this method.</li>
- * <li>Otherwise the value stored in the {@code AtomicReference} is returned.</li>
+ * <li>Otherwise the value stored in the {@link AtomicReference} is returned.</li>
  * </ul>
  * <p>
  * Because atomic variables are used this class does not need any
@@ -72,7 +72,7 @@ public abstract class AtomicInitializer<T> implements ConcurrentInitializer<T> {
      * it is not available yet and stored internally. This method always returns
      * the same object.
      *
-     * @return the object created by this {@code AtomicInitializer}
+     * @return the object created by this {@link AtomicInitializer}
      * @throws ConcurrentException if an error occurred during initialization of
      * the object
      */
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java
index 5bc91f1ad..25482663c 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java
@@ -20,7 +20,7 @@ import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * <p>
- * A specialized {@code ConcurrentInitializer} implementation which is similar
+ * A specialized {@link ConcurrentInitializer} implementation which is similar
  * to {@link AtomicInitializer}, but ensures that the {@link #initialize()}
  * method is called only once.
  * </p>
@@ -42,7 +42,7 @@ import java.util.concurrent.atomic.AtomicReference;
  * {@link LazyInitializer}. It is a &quot;save&quot; implementation of the lazy
  * initializer pattern. Comparing both classes in terms of efficiency is
  * difficult because which one is faster depends on multiple factors. Because
- * {@code AtomicSafeInitializer} does not use synchronization at all it probably
+ * {@link AtomicSafeInitializer} does not use synchronization at all it probably
  * outruns {@link LazyInitializer}, at least under low or moderate concurrent
  * access. Developers should run their own benchmarks on the expected target
  * platform to decide which implementation is suitable for their specific use
@@ -83,7 +83,7 @@ public abstract class AtomicSafeInitializer<T> implements
 
     /**
      * Creates and initializes the object managed by this
-     * {@code AtomicInitializer}. This method is called by {@link #get()} when
+     * {@link AtomicInitializer}. This method is called by {@link #get()} when
      * the managed object is not available yet. An implementation can focus on
      * the creation of the object. No synchronization is needed, as this is
      * already handled by {@code get()}. This method is guaranteed to be called
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java
index 963dee35e..a33ac3e83 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java
@@ -53,29 +53,29 @@ import java.util.concurrent.Future;
  * </pre>
  *
  * <p>
- * After the construction of a {@code BackgroundInitializer} object its
+ * After the construction of a {@link BackgroundInitializer} object its
  * {@link #start()} method has to be called. This starts the background
  * processing. The application can now continue to do other things. When it
- * needs access to the object produced by the {@code BackgroundInitializer} it
+ * needs access to the object produced by the {@link BackgroundInitializer} it
  * calls its {@link #get()} method. If initialization is already complete,
  * {@link #get()} returns the result object immediately. Otherwise it blocks
  * until the result object is fully constructed.
  * </p>
  * <p>
- * {@code BackgroundInitializer} is a thin wrapper around a {@code Future}
- * object and uses an {@code ExecutorService} for running the background
- * initialization task. It is possible to pass in an {@code ExecutorService} at
+ * {@link BackgroundInitializer} is a thin wrapper around a {@link Future}
+ * object and uses an {@link ExecutorService} for running the background
+ * initialization task. It is possible to pass in an {@link ExecutorService} at
  * construction time or set one using {@code setExternalExecutor()} before
  * {@code start()} was called. Then this object is used to spawn the background
- * task. If no {@code ExecutorService} has been provided, {@code
- * BackgroundInitializer} creates a temporary {@code ExecutorService} and
+ * task. If no {@link ExecutorService} has been provided, {@code
+ * BackgroundInitializer} creates a temporary {@link ExecutorService} and
  * destroys it when initialization is complete.
  * </p>
  * <p>
- * The methods provided by {@code BackgroundInitializer} provide for minimal
- * interaction with the wrapped {@code Future} object. It is also possible to
- * obtain the {@code Future} object directly. Then the enhanced functionality
- * offered by {@code Future} can be used, e.g. to check whether the background
+ * The methods provided by {@link BackgroundInitializer} provide for minimal
+ * interaction with the wrapped {@link Future} object. It is also possible to
+ * obtain the {@link Future} object directly. Then the enhanced functionality
+ * offered by {@link Future} can be used, e.g. to check whether the background
  * operation is complete or to cancel the operation.
  * </p>
  *
@@ -94,21 +94,21 @@ public abstract class BackgroundInitializer<T> implements
     private Future<T> future;  // @GuardedBy("this")
 
     /**
-     * Creates a new instance of {@code BackgroundInitializer}. No external
-     * {@code ExecutorService} is used.
+     * Creates a new instance of {@link BackgroundInitializer}. No external
+     * {@link ExecutorService} is used.
      */
     protected BackgroundInitializer() {
         this(null);
     }
 
     /**
-     * Creates a new instance of {@code BackgroundInitializer} and initializes
-     * it with the given {@code ExecutorService}. If the {@code ExecutorService}
+     * Creates a new instance of {@link BackgroundInitializer} and initializes
+     * it with the given {@link ExecutorService}. If the {@link ExecutorService}
      * is not null, the background task for initializing this object will be
      * scheduled at this service. Otherwise a new temporary {@code
      * ExecutorService} is created.
      *
-     * @param exec an external {@code ExecutorService} to be used for task
+     * @param exec an external {@link ExecutorService} to be used for task
      * execution
      */
     protected BackgroundInitializer(final ExecutorService exec) {
@@ -116,16 +116,16 @@ public abstract class BackgroundInitializer<T> implements
     }
 
     /**
-     * Returns the external {@code ExecutorService} to be used by this class.
+     * Returns the external {@link ExecutorService} to be used by this class.
      *
-     * @return the {@code ExecutorService}
+     * @return the {@link ExecutorService}
      */
     public final synchronized ExecutorService getExternalExecutor() {
         return externalExecutor;
     }
 
     /**
-     * Returns a flag whether this {@code BackgroundInitializer} has already
+     * Returns a flag whether this {@link BackgroundInitializer} has already
      * been started.
      *
      * @return a flag whether the {@link #start()} method has already been
@@ -136,16 +136,16 @@ public abstract class BackgroundInitializer<T> implements
     }
 
     /**
-     * Sets an {@code ExecutorService} to be used by this class. The {@code
+     * Sets an {@link ExecutorService} to be used by this class. The {@code
      * ExecutorService} passed to this method is used for executing the
      * background task. Thus it is possible to re-use an already existing
-     * {@code ExecutorService} or to use a specially configured one. If no
-     * {@code ExecutorService} is set, this instance creates a temporary one and
+     * {@link ExecutorService} or to use a specially configured one. If no
+     * {@link ExecutorService} is set, this instance creates a temporary one and
      * destroys it after background initialization is complete. Note that this
      * method must be called before {@link #start()}; otherwise an exception is
      * thrown.
      *
-     * @param externalExecutor the {@code ExecutorService} to be used
+     * @param externalExecutor the {@link ExecutorService} to be used
      * @throws IllegalStateException if this initializer has already been
      * started
      */
@@ -162,7 +162,7 @@ public abstract class BackgroundInitializer<T> implements
     /**
      * Starts the background initialization. With this method the initializer
      * becomes active and invokes the {@link #initialize()} method in a
-     * background task. A {@code BackgroundInitializer} can be started exactly
+     * background task. A {@link BackgroundInitializer} can be started exactly
      * once. The return value of this method determines whether the start was
      * successful: only the first invocation of this method returns <b>true</b>,
      * following invocations will return <b>false</b>.
@@ -195,9 +195,9 @@ public abstract class BackgroundInitializer<T> implements
      * Returns the result of the background initialization. This method blocks
      * until initialization is complete. If the background processing caused a
      * runtime exception, it is directly thrown by this method. Checked
-     * exceptions, including {@code InterruptedException} are wrapped in a
+     * exceptions, including {@link InterruptedException} are wrapped in a
      * {@link ConcurrentException}. Calling this method before {@link #start()}
-     * was called causes an {@code IllegalStateException} exception to be
+     * was called causes an {@link IllegalStateException} exception to be
      * thrown.
      *
      * @return the object produced by this initializer
@@ -220,11 +220,11 @@ public abstract class BackgroundInitializer<T> implements
     }
 
     /**
-     * Returns the {@code Future} object that was created when {@link #start()}
+     * Returns the {@link Future} object that was created when {@link #start()}
      * was called. Therefore this method can only be called after {@code
      * start()}.
      *
-     * @return the {@code Future} object wrapped by this initializer
+     * @return the {@link Future} object wrapped by this initializer
      * @throws IllegalStateException if {@link #start()} has not been called
      */
     public synchronized Future<T> getFuture() {
@@ -236,13 +236,13 @@ public abstract class BackgroundInitializer<T> implements
     }
 
     /**
-     * Returns the {@code ExecutorService} that is actually used for executing
+     * Returns the {@link ExecutorService} that is actually used for executing
      * the background task. This method can be called after {@link #start()}
      * (before {@code start()} it returns <b>null</b>). If an external executor
      * was set, this is also the active executor. Otherwise this method returns
      * the temporary executor that was created by this object.
      *
-     * @return the {@code ExecutorService} for executing the background task
+     * @return the {@link ExecutorService} for executing the background task
      */
     protected final synchronized ExecutorService getActiveExecutor() {
         return executor;
@@ -265,7 +265,7 @@ public abstract class BackgroundInitializer<T> implements
 
     /**
      * Performs the initialization. This method is called in a background task
-     * when this {@code BackgroundInitializer} is started. It must be
+     * when this {@link BackgroundInitializer} is started. It must be
      * implemented by a concrete subclass. An implementation is free to perform
      * arbitrary initialization. The object returned by this method can be
      * queried using the {@link #get()} method.
@@ -276,13 +276,13 @@ public abstract class BackgroundInitializer<T> implements
     protected abstract T initialize() throws Exception;
 
     /**
-     * Creates a task for the background initialization. The {@code Callable}
-     * object returned by this method is passed to the {@code ExecutorService}.
+     * Creates a task for the background initialization. The {@link Callable}
+     * object returned by this method is passed to the {@link ExecutorService}.
      * This implementation returns a task that invokes the {@link #initialize()}
-     * method. If a temporary {@code ExecutorService} is used, it is destroyed
+     * method. If a temporary {@link ExecutorService} is used, it is destroyed
      * at the end of the task.
      *
-     * @param execDestroy the {@code ExecutorService} to be destroyed by the
+     * @param execDestroy the {@link ExecutorService} to be destroyed by the
      * task
      * @return a task for the background initialization
      */
@@ -291,10 +291,10 @@ public abstract class BackgroundInitializer<T> implements
     }
 
     /**
-     * Creates the {@code ExecutorService} to be used. This method is called if
-     * no {@code ExecutorService} was provided at construction time.
+     * Creates the {@link ExecutorService} to be used. This method is called if
+     * no {@link ExecutorService} was provided at construction time.
      *
-     * @return the {@code ExecutorService} to be used
+     * @return the {@link ExecutorService} to be used
      */
     private ExecutorService createExecutor() {
         return Executors.newFixedThreadPool(getTaskCount());
@@ -305,10 +305,10 @@ public abstract class BackgroundInitializer<T> implements
         private final ExecutorService execFinally;
 
         /**
-         * Creates a new instance of {@code InitializationTask} and initializes
-         * it with the {@code ExecutorService} to be destroyed at the end.
+         * Creates a new instance of {@link InitializationTask} and initializes
+         * it with the {@link ExecutorService} to be destroyed at the end.
          *
-         * @param exec the {@code ExecutorService}
+         * @param exec the {@link ExecutorService}
          */
         InitializationTask(final ExecutorService exec) {
             execFinally = exec;
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/BasicThreadFactory.java b/src/main/java/org/apache/commons/lang3/concurrent/BasicThreadFactory.java
index 631f2e465..6683bb8ca 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/BasicThreadFactory.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/BasicThreadFactory.java
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.lang3.concurrent;
 
+import java.lang.Thread.UncaughtExceptionHandler;
+import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicLong;
@@ -24,15 +26,15 @@ import org.apache.commons.lang3.Validate;
 
 /**
  * <p>
- * An implementation of the {@code ThreadFactory} interface that provides some
+ * An implementation of the {@link ThreadFactory} interface that provides some
  * configuration options for the threads it creates.
  * </p>
  * <p>
- * A {@code ThreadFactory} is used for instance by an {@code ExecutorService} to
+ * A {@link ThreadFactory} is used for instance by an {@link ExecutorService} to
  * create the threads it uses for executing tasks. In many cases users do not
- * have to care about a {@code ThreadFactory} because the default one used by an
- * {@code ExecutorService} will do. However, if there are special requirements
- * for the threads, a custom {@code ThreadFactory} has to be created.
+ * have to care about a {@link ThreadFactory} because the default one used by an
+ * {@link ExecutorService} will do. However, if there are special requirements
+ * for the threads, a custom {@link ThreadFactory} has to be created.
  * </p>
  * <p>
  * This class provides some frequently needed configuration options for the
@@ -56,22 +58,22 @@ import org.apache.commons.lang3.Validate;
  * <li>The priority of the thread. Here an integer value can be provided. The
  * {@code java.lang.Thread} class defines constants for valid ranges of priority
  * values.</li>
- * <li>The {@code UncaughtExceptionHandler} for the thread. This handler is
+ * <li>The {@link UncaughtExceptionHandler} for the thread. This handler is
  * called if an uncaught exception occurs within the thread.</li>
  * </ul>
  * <p>
- * {@code BasicThreadFactory} wraps another thread factory which actually
+ * {@link BasicThreadFactory} wraps another thread factory which actually
  * creates new threads. The configuration options are set on the threads created
  * by the wrapped thread factory. On construction time the factory to be wrapped
- * can be specified. If none is provided, a default {@code ThreadFactory} is
+ * can be specified. If none is provided, a default {@link ThreadFactory} is
  * used.
  * </p>
  * <p>
- * Instances of {@code BasicThreadFactory} are not created directly, but the
- * nested {@code Builder} class is used for this purpose. Using the builder only
+ * Instances of {@link BasicThreadFactory} are not created directly, but the
+ * nested {@link Builder} class is used for this purpose. Using the builder only
  * the configuration options an application is interested in need to be set. The
- * following example shows how a {@code BasicThreadFactory} is created and
- * installed in an {@code ExecutorService}:
+ * following example shows how a {@link BasicThreadFactory} is created and
+ * installed in an {@link ExecutorService}:
  * </p>
  *
  * <pre>
@@ -108,10 +110,10 @@ public class BasicThreadFactory implements ThreadFactory {
     private final Boolean daemon;
 
     /**
-     * Creates a new instance of {@code ThreadFactoryImpl} and configures it
-     * from the specified {@code Builder} object.
+     * Creates a new instance of {@link ThreadFactoryImpl} and configures it
+     * from the specified {@link Builder} object.
      *
-     * @param builder the {@code Builder} object
+     * @param builder the {@link Builder} object
      */
     private BasicThreadFactory(final Builder builder) {
         if (builder.wrappedFactory == null) {
@@ -129,12 +131,12 @@ public class BasicThreadFactory implements ThreadFactory {
     }
 
     /**
-     * Returns the wrapped {@code ThreadFactory}. This factory is used for
+     * Returns the wrapped {@link ThreadFactory}. This factory is used for
      * actually creating threads. This method never returns <b>null</b>. If no
-     * {@code ThreadFactory} was passed when this object was created, a default
+     * {@link ThreadFactory} was passed when this object was created, a default
      * thread factory is returned.
      *
-     * @return the wrapped {@code ThreadFactory}
+     * @return the wrapped {@link ThreadFactory}
      */
     public final ThreadFactory getWrappedFactory() {
         return wrappedFactory;
@@ -173,10 +175,10 @@ public class BasicThreadFactory implements ThreadFactory {
     }
 
     /**
-     * Returns the {@code UncaughtExceptionHandler} for the threads created by
+     * Returns the {@link UncaughtExceptionHandler} for the threads created by
      * this factory. Result can be <b>null</b> if no handler was provided.
      *
-     * @return the {@code UncaughtExceptionHandler}
+     * @return the {@link UncaughtExceptionHandler}
      */
     public final Thread.UncaughtExceptionHandler getUncaughtExceptionHandler() {
         return uncaughtExceptionHandler;
@@ -198,7 +200,7 @@ public class BasicThreadFactory implements ThreadFactory {
      * factory for creating the thread. Then, on the newly created thread the
      * corresponding configuration options are set.
      *
-     * @param runnable the {@code Runnable} to be executed by the new thread
+     * @param runnable the {@link Runnable} to be executed by the new thread
      * @return the newly created thread
      */
     @Override
@@ -243,9 +245,9 @@ public class BasicThreadFactory implements ThreadFactory {
      * BasicThreadFactory}.
      * </p>
      * <p>
-     * Using this builder class instances of {@code BasicThreadFactory} can be
+     * Using this builder class instances of {@link BasicThreadFactory} can be
      * created and initialized. The class provides methods that correspond to
-     * the configuration options supported by {@code BasicThreadFactory}. Method
+     * the configuration options supported by {@link BasicThreadFactory}. Method
      * chaining is supported. Refer to the documentation of {@code
      * BasicThreadFactory} for a usage example.
      * </p>
@@ -270,13 +272,13 @@ public class BasicThreadFactory implements ThreadFactory {
         private Boolean daemon;
 
         /**
-         * Sets the {@code ThreadFactory} to be wrapped by the new {@code
+         * Sets the {@link ThreadFactory} to be wrapped by the new {@code
          * BasicThreadFactory}.
          *
-         * @param factory the wrapped {@code ThreadFactory} (must not be
+         * @param factory the wrapped {@link ThreadFactory} (must not be
          * <b>null</b>)
-         * @return a reference to this {@code Builder}
-         * @throws NullPointerException if the passed in {@code ThreadFactory}
+         * @return a reference to this {@link Builder}
+         * @throws NullPointerException if the passed in {@link ThreadFactory}
          * is <b>null</b>
          */
         public Builder wrappedFactory(final ThreadFactory factory) {
@@ -291,7 +293,7 @@ public class BasicThreadFactory implements ThreadFactory {
          * BasicThreadFactory}.
          *
          * @param pattern the naming pattern (must not be <b>null</b>)
-         * @return a reference to this {@code Builder}
+         * @return a reference to this {@link Builder}
          * @throws NullPointerException if the naming pattern is <b>null</b>
          */
         public Builder namingPattern(final String pattern) {
@@ -302,12 +304,12 @@ public class BasicThreadFactory implements ThreadFactory {
         }
 
         /**
-         * Sets the daemon flag for the new {@code BasicThreadFactory}. If this
+         * Sets the daemon flag for the new {@link BasicThreadFactory}. If this
          * flag is set to <b>true</b> the new thread factory will create daemon
          * threads.
          *
          * @param daemon the value of the daemon flag
-         * @return a reference to this {@code Builder}
+         * @return a reference to this {@link Builder}
          */
         public Builder daemon(final boolean daemon) {
             this.daemon = Boolean.valueOf(daemon);
@@ -319,7 +321,7 @@ public class BasicThreadFactory implements ThreadFactory {
          * BasicThreadFactory}.
          *
          * @param priority the priority
-         * @return a reference to this {@code Builder}
+         * @return a reference to this {@link Builder}
          */
         public Builder priority(final int priority) {
             this.priority = Integer.valueOf(priority);
@@ -328,11 +330,11 @@ public class BasicThreadFactory implements ThreadFactory {
 
         /**
          * Sets the uncaught exception handler for the threads created by the
-         * new {@code BasicThreadFactory}.
+         * new {@link BasicThreadFactory}.
          *
-         * @param handler the {@code UncaughtExceptionHandler} (must not be
+         * @param handler the {@link UncaughtExceptionHandler} (must not be
          * <b>null</b>)
-         * @return a reference to this {@code Builder}
+         * @return a reference to this {@link Builder}
          * @throws NullPointerException if the exception handler is <b>null</b>
          */
         public Builder uncaughtExceptionHandler(
@@ -358,11 +360,11 @@ public class BasicThreadFactory implements ThreadFactory {
         }
 
         /**
-         * Creates a new {@code BasicThreadFactory} with all configuration
+         * Creates a new {@link BasicThreadFactory} with all configuration
          * options that have been specified by calling methods on this builder.
          * After creating the factory {@link #reset()} is called.
          *
-         * @return the new {@code BasicThreadFactory}
+         * @return the new {@link BasicThreadFactory}
          */
         @Override
         public BasicThreadFactory build() {
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java
index 26d7d58bf..386890fdb 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java
@@ -24,13 +24,13 @@ import org.apache.commons.lang3.Validate;
 /**
  * <p>
  * A specialized {@link BackgroundInitializer} implementation that wraps a
- * {@code Callable} object.
+ * {@link Callable} object.
  * </p>
  * <p>
- * An instance of this class is initialized with a {@code Callable} object when
+ * An instance of this class is initialized with a {@link Callable} object when
  * it is constructed. The implementation of the {@link #initialize()} method
- * defined in the super class delegates to this {@code Callable} so that the
- * {@code Callable} is executed in the background thread.
+ * defined in the super class delegates to this {@link Callable} so that the
+ * {@link Callable} is executed in the background thread.
  * </p>
  * <p>
  * The {@code java.util.concurrent.Callable} interface is a standard mechanism
@@ -41,9 +41,9 @@ import org.apache.commons.lang3.Validate;
  * <p>
  * Usage of this class is very similar to the default usage pattern of the
  * {@link BackgroundInitializer} class: Just create an instance and provide the
- * {@code Callable} object to be executed, then call the initializer's
- * {@link #start()} method. This causes the {@code Callable} to be executed in
- * another thread. When the results of the {@code Callable} are needed the
+ * {@link Callable} object to be executed, then call the initializer's
+ * {@link #start()} method. This causes the {@link Callable} to be executed in
+ * another thread. When the results of the {@link Callable} are needed the
  * initializer's {@link #get()} method can be called (which may block until
  * background execution is complete). The following code fragment shows a
  * typical usage example:
@@ -71,11 +71,11 @@ public class CallableBackgroundInitializer<T> extends BackgroundInitializer<T> {
     private final Callable<T> callable;
 
     /**
-     * Creates a new instance of {@code CallableBackgroundInitializer} and sets
-     * the {@code Callable} to be executed in a background thread.
+     * Creates a new instance of {@link CallableBackgroundInitializer} and sets
+     * the {@link Callable} to be executed in a background thread.
      *
-     * @param call the {@code Callable} (must not be <b>null</b>)
-     * @throws IllegalArgumentException if the {@code Callable} is <b>null</b>
+     * @param call the {@link Callable} (must not be <b>null</b>)
+     * @throws IllegalArgumentException if the {@link Callable} is <b>null</b>
      */
     public CallableBackgroundInitializer(final Callable<T> call) {
         checkCallable(call);
@@ -83,15 +83,15 @@ public class CallableBackgroundInitializer<T> extends BackgroundInitializer<T> {
     }
 
     /**
-     * Creates a new instance of {@code CallableBackgroundInitializer} and
-     * initializes it with the {@code Callable} to be executed in a background
-     * thread and the {@code ExecutorService} for managing the background
+     * Creates a new instance of {@link CallableBackgroundInitializer} and
+     * initializes it with the {@link Callable} to be executed in a background
+     * thread and the {@link ExecutorService} for managing the background
      * execution.
      *
-     * @param call the {@code Callable} (must not be <b>null</b>)
-     * @param exec an external {@code ExecutorService} to be used for task
+     * @param call the {@link Callable} (must not be <b>null</b>)
+     * @param exec an external {@link ExecutorService} to be used for task
      * execution
-     * @throws IllegalArgumentException if the {@code Callable} is <b>null</b>
+     * @throws IllegalArgumentException if the {@link Callable} is <b>null</b>
      */
     public CallableBackgroundInitializer(final Callable<T> call, final ExecutorService exec) {
         super(exec);
@@ -101,7 +101,7 @@ public class CallableBackgroundInitializer<T> extends BackgroundInitializer<T> {
 
     /**
      * Performs initialization in a background thread. This implementation
-     * delegates to the {@code Callable} passed at construction time of this
+     * delegates to the {@link Callable} passed at construction time of this
      * object.
      *
      * @return the result of the initialization
@@ -113,11 +113,11 @@ public class CallableBackgroundInitializer<T> extends BackgroundInitializer<T> {
     }
 
     /**
-     * Tests the passed in {@code Callable} and throws an exception if it is
+     * Tests the passed in {@link Callable} and throws an exception if it is
      * undefined.
      *
      * @param callable the object to check
-     * @throws IllegalArgumentException if the {@code Callable} is <b>null</b>
+     * @throws IllegalArgumentException if the {@link Callable} is <b>null</b>
      */
     private void checkCallable(final Callable<T> callable) {
         Validate.notNull(callable, "callable");
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreaker.java b/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreaker.java
index 7420e70cd..3299ac28b 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreaker.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreaker.java
@@ -60,7 +60,7 @@ public interface CircuitBreaker<T> {
 
     /**
      * Checks the state of this circuit breaker and changes it if necessary. The return
-     * value indicates whether the circuit breaker is now in state {@code CLOSED}; a value
+     * value indicates whether the circuit breaker is now in state <em>closed</em>; a value
      * of <strong>true</strong> typically means that the current operation can continue.
      *
      * @return <strong>true</strong> if the circuit breaker is now closed;
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreakingException.java b/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreakingException.java
index 5f8c5fc26..8fb62a48b 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreakingException.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/CircuitBreakingException.java
@@ -30,13 +30,13 @@ public class CircuitBreakingException extends RuntimeException {
     private static final long serialVersionUID = 1408176654686913340L;
 
     /**
-     * Creates a new, uninitialized instance of {@code CircuitBreakingException}.
+     * Creates a new, uninitialized instance of {@link CircuitBreakingException}.
      */
     public CircuitBreakingException() {
     }
 
     /**
-     * Creates a new instance of {@code CircuitBreakingException} and initializes it with the given message and cause.
+     * Creates a new instance of {@link CircuitBreakingException} and initializes it with the given message and cause.
      *
      * @param message the error message
      * @param cause the cause of this exception
@@ -46,7 +46,7 @@ public class CircuitBreakingException extends RuntimeException {
     }
 
     /**
-     * Creates a new instance of {@code CircuitBreakingException} and initializes it with the given message.
+     * Creates a new instance of {@link CircuitBreakingException} and initializes it with the given message.
      *
      * @param message the error message
      */
@@ -55,7 +55,7 @@ public class CircuitBreakingException extends RuntimeException {
     }
 
     /**
-     * Creates a new instance of {@code CircuitBreakingException} and initializes it with the given cause.
+     * Creates a new instance of {@link CircuitBreakingException} and initializes it with the given cause.
      *
      * @param cause the cause of this exception
      */
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java
index b5cbd05c5..77fa71a8f 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java
@@ -16,17 +16,16 @@
  */
 package org.apache.commons.lang3.concurrent;
 
+import java.util.concurrent.ExecutionException;
+
 /**
  * <p>
- * An exception class used for reporting error conditions related to accessing
- * data of background tasks.
+ * An exception class used for reporting error conditions related to accessing data of background tasks.
  * </p>
  * <p>
- * The purpose of this exception class is analogous to the default JDK exception
- * class {@link java.util.concurrent.ExecutionException}, i.e. it wraps an
- * exception that occurred during the execution of a task. However, in contrast
- * to {@code ExecutionException}, it wraps only checked exceptions. Runtime
- * exceptions are thrown directly.
+ * The purpose of this exception class is analogous to the default JDK exception class {@link ExecutionException}, i.e.
+ * it wraps an exception that occurred during the execution of a task. However, in contrast to
+ * {@link ExecutionException}, it wraps only checked exceptions. Runtime exceptions are thrown directly.
  * </p>
  *
  * @since 3.0
@@ -38,13 +37,13 @@ public class ConcurrentException extends Exception {
     private static final long serialVersionUID = 6622707671812226130L;
 
     /**
-     * Creates a new, uninitialized instance of {@code ConcurrentException}.
+     * Creates a new, uninitialized instance of {@link ConcurrentException}.
      */
     protected ConcurrentException() {
     }
 
     /**
-     * Creates a new instance of {@code ConcurrentException} and initializes it
+     * Creates a new instance of {@link ConcurrentException} and initializes it
      * with the given cause.
      *
      * @param cause the cause of this exception
@@ -55,7 +54,7 @@ public class ConcurrentException extends Exception {
     }
 
     /**
-     * Creates a new instance of {@code ConcurrentException} and initializes it
+     * Creates a new instance of {@link ConcurrentException} and initializes it
      * with the given message and cause.
      *
      * @param msg the error message
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java
index 5532f74b1..9bdc6ee30 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java
@@ -22,7 +22,7 @@ package org.apache.commons.lang3.concurrent;
  * </p>
  * <p>
  * The idea behind this interface is to provide access to an object in a
- * thread-safe manner. A {@code ConcurrentInitializer} can be passed to multiple
+ * thread-safe manner. A {@link ConcurrentInitializer} can be passed to multiple
  * threads which can all access the object produced by the initializer. Through
  * the {@link #get()} method the object can be queried.
  * </p>
@@ -45,7 +45,7 @@ public interface ConcurrentInitializer<T> {
      * results are available. Typically, once created the result object is
      * always the same.
      *
-     * @return the object created by this {@code ConcurrentException}
+     * @return the object created by this {@link ConcurrentException}
      * @throws ConcurrentException if an error occurred during initialization of
      * the object
      */
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java
index 4a1d95d75..81458eaca 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java
@@ -46,7 +46,7 @@ public class ConcurrentRuntimeException extends RuntimeException {
     }
 
     /**
-     * Creates a new instance of {@code ConcurrentRuntimeException} and
+     * Creates a new instance of {@link ConcurrentRuntimeException} and
      * initializes it with the given cause.
      *
      * @param cause the cause of this exception
@@ -57,7 +57,7 @@ public class ConcurrentRuntimeException extends RuntimeException {
     }
 
     /**
-     * Creates a new instance of {@code ConcurrentRuntimeException} and
+     * Creates a new instance of {@link ConcurrentRuntimeException} and
      * initializes it with the given message and cause.
      *
      * @param msg the error message
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java
index b6f1671bb..773a22643 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java
@@ -41,8 +41,8 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Inspects the cause of the specified {@code ExecutionException} and
-     * creates a {@code ConcurrentException} with the checked cause if
+     * Inspects the cause of the specified {@link ExecutionException} and
+     * creates a {@link ConcurrentException} with the checked cause if
      * necessary. This method performs the following checks on the cause of the
      * passed in exception:
      * <ul>
@@ -56,7 +56,7 @@ public class ConcurrentUtils {
      * </ul>
      *
      * @param ex the exception to be processed
-     * @return a {@code ConcurrentException} with the checked cause
+     * @return a {@link ConcurrentException} with the checked cause
      */
     public static ConcurrentException extractCause(final ExecutionException ex) {
         if (ex == null || ex.getCause() == null) {
@@ -68,16 +68,16 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Inspects the cause of the specified {@code ExecutionException} and
-     * creates a {@code ConcurrentRuntimeException} with the checked cause if
+     * Inspects the cause of the specified {@link ExecutionException} and
+     * creates a {@link ConcurrentRuntimeException} with the checked cause if
      * necessary. This method works exactly like
      * {@link #extractCause(ExecutionException)}. The only difference is that
-     * the cause of the specified {@code ExecutionException} is extracted as a
+     * the cause of the specified {@link ExecutionException} is extracted as a
      * runtime exception. This is an alternative for client code that does not
      * want to deal with checked exceptions.
      *
      * @param ex the exception to be processed
-     * @return a {@code ConcurrentRuntimeException} with the checked cause
+     * @return a {@link ConcurrentRuntimeException} with the checked cause
      */
     public static ConcurrentRuntimeException extractCauseUnchecked(
             final ExecutionException ex) {
@@ -90,11 +90,11 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Handles the specified {@code ExecutionException}. This method calls
+     * Handles the specified {@link ExecutionException}. This method calls
      * {@link #extractCause(ExecutionException)} for obtaining the cause of the
      * exception - which might already cause an unchecked exception or an error
      * being thrown. If the cause is a checked exception however, it is wrapped
-     * in a {@code ConcurrentException}, which is thrown. If the passed in
+     * in a {@link ConcurrentException}, which is thrown. If the passed in
      * exception is <b>null</b> or has no cause, the method simply returns
      * without throwing an exception.
      *
@@ -112,7 +112,7 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Handles the specified {@code ExecutionException} and transforms it into a
+     * Handles the specified {@link ExecutionException} and transforms it into a
      * runtime exception. This method works exactly like
      * {@link #handleCause(ExecutionException)}, but instead of a
      * {@link ConcurrentException} it throws a
@@ -133,12 +133,12 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Tests whether the specified {@code Throwable} is a checked exception. If
+     * Tests whether the specified {@link Throwable} is a checked exception. If
      * not, an exception is thrown.
      *
-     * @param ex the {@code Throwable} to check
+     * @param ex the {@link Throwable} to check
      * @return a flag whether the passed in exception is a checked exception
-     * @throws IllegalArgumentException if the {@code Throwable} is not a
+     * @throws IllegalArgumentException if the {@link Throwable} is not a
      * checked exception
      */
     static Throwable checkedException(final Throwable ex) {
@@ -149,7 +149,7 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Tests whether the cause of the specified {@code ExecutionException}
+     * Tests whether the cause of the specified {@link ExecutionException}
      * should be thrown and does it if necessary.
      *
      * @param ex the exception in question
@@ -165,16 +165,16 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Invokes the specified {@code ConcurrentInitializer} and returns the
+     * Invokes the specified {@link ConcurrentInitializer} and returns the
      * object produced by the initializer. This method just invokes the {@code
-     * get()} method of the given {@code ConcurrentInitializer}. It is
+     * get()} method of the given {@link ConcurrentInitializer}. It is
      * <b>null</b>-safe: if the argument is <b>null</b>, result is also
      * <b>null</b>.
      *
      * @param <T> the type of the object produced by the initializer
-     * @param initializer the {@code ConcurrentInitializer} to be invoked
-     * @return the object managed by the {@code ConcurrentInitializer}
-     * @throws ConcurrentException if the {@code ConcurrentInitializer} throws
+     * @param initializer the {@link ConcurrentInitializer} to be invoked
+     * @return the object managed by the {@link ConcurrentInitializer}
+     * @throws ConcurrentException if the {@link ConcurrentInitializer} throws
      * an exception
      */
     public static <T> T initialize(final ConcurrentInitializer<T> initializer)
@@ -183,7 +183,7 @@ public class ConcurrentUtils {
     }
 
     /**
-     * Invokes the specified {@code ConcurrentInitializer} and transforms
+     * Invokes the specified {@link ConcurrentInitializer} and transforms
      * occurring exceptions to runtime exceptions. This method works like
      * {@link #initialize(ConcurrentInitializer)}, but if the {@code
      * ConcurrentInitializer} throws a {@link ConcurrentException}, it is
@@ -191,8 +191,8 @@ public class ConcurrentUtils {
      * So client code does not have to deal with checked exceptions.
      *
      * @param <T> the type of the object produced by the initializer
-     * @param initializer the {@code ConcurrentInitializer} to be invoked
-     * @return the object managed by the {@code ConcurrentInitializer}
+     * @param initializer the {@link ConcurrentInitializer} to be invoked
+     * @return the object managed by the {@link ConcurrentInitializer}
      * @throws ConcurrentRuntimeException if the initializer throws an exception
      */
     public static <T> T initializeUnchecked(final ConcurrentInitializer<T> initializer) {
@@ -205,9 +205,9 @@ public class ConcurrentUtils {
 
     /**
      * <p>
-     * Puts a value in the specified {@code ConcurrentMap} if the key is not yet
+     * Puts a value in the specified {@link ConcurrentMap} if the key is not yet
      * present. This method works similar to the {@code putIfAbsent()} method of
-     * the {@code ConcurrentMap} interface, but the value returned is different.
+     * the {@link ConcurrentMap} interface, but the value returned is different.
      * Basically, this method is equivalent to the following code fragment:
      * </p>
      *
@@ -305,7 +305,7 @@ public class ConcurrentUtils {
 
     /**
      * <p>
-     * Gets an implementation of {@code Future} that is immediately done
+     * Gets an implementation of {@link Future} that is immediately done
      * and returns the specified constant value.
      * </p>
      * <p>
@@ -314,7 +314,7 @@ public class ConcurrentUtils {
      * A constant future can also be useful in testing.
      * </p>
      *
-     * @param <T> the type of the value used by this {@code Future} object
+     * @param <T> the type of the value used by this {@link Future} object
      * @param value  the constant value to return, may be null
      * @return an instance of Future that will return the value, never null
      */
@@ -323,7 +323,7 @@ public class ConcurrentUtils {
     }
 
     /**
-     * A specialized {@code Future} implementation which wraps a constant value.
+     * A specialized {@link Future} implementation which wraps a constant value.
      * @param <T> the type of the value wrapped by this class
      */
     static final class ConstantFuture<T> implements Future<T> {
@@ -331,7 +331,7 @@ public class ConcurrentUtils {
         private final T value;
 
         /**
-         * Creates a new instance of {@code ConstantFuture} and initializes it
+         * Creates a new instance of {@link ConstantFuture} and initializes it
          * with the constant value.
          *
          * @param value the value (may be <b>null</b>)
@@ -342,7 +342,7 @@ public class ConcurrentUtils {
 
         /**
          * {@inheritDoc} This implementation always returns <b>true</b> because
-         * the constant object managed by this {@code Future} implementation is
+         * the constant object managed by this {@link Future} implementation is
          * always available.
          */
         @Override
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java
index 4c6bc3e34..604527cf2 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java
@@ -45,7 +45,7 @@ public class ConstantInitializer<T> implements ConcurrentInitializer<T> {
     private final T object;
 
     /**
-     * Creates a new instance of {@code ConstantInitializer} and initializes it
+     * Creates a new instance of {@link ConstantInitializer} and initializes it
      * with the object to be managed. The {@code get()} method will always
      * return the object passed here. This class does not place any restrictions
      * on the object. It may be <b>null</b>, then {@code get()} will return
@@ -94,7 +94,7 @@ public class ConstantInitializer<T> implements ConcurrentInitializer<T> {
     /**
      * Compares this object with another one. This implementation returns
      * <b>true</b> if and only if the passed in object is an instance of
-     * {@code ConstantInitializer} which refers to an object equals to the
+     * {@link ConstantInitializer} which refers to an object equals to the
      * object managed by this instance.
      *
      * @param obj the object to compare to
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreaker.java b/src/main/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreaker.java
index 051f92452..66ae7a375 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreaker.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreaker.java
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.lang3.concurrent;
 
+import java.beans.PropertyChangeListener;
 import java.util.EnumMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -29,7 +30,7 @@ import java.util.concurrent.atomic.AtomicReference;
  * </p>
  * <p>
  * A <em>circuit breaker</em> can be used to protect an application against unreliable
- * services or unexpected load. A newly created {@code EventCountCircuitBreaker} object is
+ * services or unexpected load. A newly created {@link EventCountCircuitBreaker} object is
  * initially in state <em>closed</em> meaning that no problem has been detected. When the
  * application encounters specific events (like errors or service timeouts), it tells the
  * circuit breaker to increment an internal counter. If the number of events reported in a
@@ -40,7 +41,7 @@ import java.util.concurrent.atomic.AtomicReference;
  * certain time frame if the number of events received goes below a threshold.
  * </p>
  * <p>
- * When a {@code EventCountCircuitBreaker} object is constructed the following parameters
+ * When a {@link EventCountCircuitBreaker} object is constructed the following parameters
  * can be provided:
  * </p>
  * <ul>
@@ -66,10 +67,10 @@ import java.util.concurrent.atomic.AtomicReference;
  * Imagine you have a server which can handle a certain number of requests per minute.
  * Suddenly, the number of requests increases significantly - maybe because a connected
  * partner system is going mad or due to a denial of service attack. A
- * {@code EventCountCircuitBreaker} can be configured to stop the application from
+ * {@link EventCountCircuitBreaker} can be configured to stop the application from
  * processing requests when a sudden peak load is detected and to start request processing
  * again when things calm down. The following code fragment shows a typical example of
- * such a scenario. Here the {@code EventCountCircuitBreaker} allows up to 1000 requests
+ * such a scenario. Here the {@link EventCountCircuitBreaker} allows up to 1000 requests
  * per minute before it interferes. When the load goes down again to 800 requests per
  * second it switches back to state <em>closed</em>:
  * </p>
@@ -114,7 +115,7 @@ import java.util.concurrent.atomic.AtomicReference;
  * <p>
  * In addition to automatic state transitions, the state of a circuit breaker can be
  * changed manually using the methods {@link #open()} and {@link #close()}. It is also
- * possible to register {@code PropertyChangeListener} objects that get notified whenever
+ * possible to register {@link PropertyChangeListener} objects that get notified whenever
  * a state transition occurs. This is useful, for instance to directly react on a freshly
  * detected error condition.
  * </p>
@@ -156,7 +157,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
     private final long closingInterval;
 
     /**
-     * Creates a new instance of {@code EventCountCircuitBreaker} and initializes all properties for
+     * Creates a new instance of {@link EventCountCircuitBreaker} and initializes all properties for
      * opening and closing it based on threshold values for events occurring in specific
      * intervals.
      *
@@ -164,12 +165,12 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
      * number of events is received in the time span determined by the opening interval,
      * the circuit breaker is opened
      * @param openingInterval the interval for opening the circuit breaker
-     * @param openingUnit the {@code TimeUnit} defining the opening interval
+     * @param openingUnit the {@link TimeUnit} defining the opening interval
      * @param closingThreshold the threshold for closing the circuit breaker; if the
      * number of events received in the time span determined by the closing interval goes
      * below this threshold, the circuit breaker is closed again
      * @param closingInterval the interval for closing the circuit breaker
-     * @param closingUnit the {@code TimeUnit} defining the closing interval
+     * @param closingUnit the {@link TimeUnit} defining the closing interval
      */
     public EventCountCircuitBreaker(final int openingThreshold, final long openingInterval,
                                     final TimeUnit openingUnit, final int closingThreshold, final long closingInterval,
@@ -182,14 +183,14 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
     }
 
     /**
-     * Creates a new instance of {@code EventCountCircuitBreaker} with the same interval for opening
+     * Creates a new instance of {@link EventCountCircuitBreaker} with the same interval for opening
      * and closing checks.
      *
      * @param openingThreshold the threshold for opening the circuit breaker; if this
      * number of events is received in the time span determined by the check interval, the
      * circuit breaker is opened
      * @param checkInterval the check interval for opening or closing the circuit breaker
-     * @param checkUnit the {@code TimeUnit} defining the check interval
+     * @param checkUnit the {@link TimeUnit} defining the check interval
      * @param closingThreshold the threshold for closing the circuit breaker; if the
      * number of events received in the time span determined by the check interval goes
      * below this threshold, the circuit breaker is closed again
@@ -201,14 +202,14 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
     }
 
     /**
-     * Creates a new instance of {@code EventCountCircuitBreaker} which uses the same parameters for
+     * Creates a new instance of {@link EventCountCircuitBreaker} which uses the same parameters for
      * opening and closing checks.
      *
      * @param threshold the threshold for changing the status of the circuit breaker; if
      * the number of events received in a check interval is greater than this value, the
      * circuit breaker is opened; if it is lower than this value, it is closed again
      * @param checkInterval the check interval for opening or closing the circuit breaker
-     * @param checkUnit the {@code TimeUnit} defining the check interval
+     * @param checkUnit the {@link TimeUnit} defining the check interval
      */
     public EventCountCircuitBreaker(final int threshold, final long checkInterval, final TimeUnit checkUnit) {
         this(threshold, checkInterval, checkUnit, threshold);
@@ -337,7 +338,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
     }
 
     /**
-     * Updates the {@code CheckIntervalData} object. The current data object is replaced
+     * Updates the {@link CheckIntervalData} object. The current data object is replaced
      * by the one modified by the last check. The return value indicates whether this was
      * successful. If it is <strong>false</strong>, another thread interfered, and the
      * whole operation has to be redone.
@@ -354,7 +355,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
 
     /**
      * Changes the state of this circuit breaker and also initializes a new
-     * {@code CheckIntervalData} object.
+     * {@link CheckIntervalData} object.
      *
      * @param newState the new state to be set
      */
@@ -364,7 +365,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
     }
 
     /**
-     * Calculates the next {@code CheckIntervalData} object based on the current data and
+     * Calculates the next {@link CheckIntervalData} object based on the current data and
      * the current state. The next data object takes the counter increment and the current
      * time into account.
      *
@@ -372,7 +373,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
      * @param currentData the current check data object
      * @param currentState the current state of the circuit breaker
      * @param time the current time
-     * @return the updated {@code CheckIntervalData} object
+     * @return the updated {@link CheckIntervalData} object
      */
     private CheckIntervalData nextCheckIntervalData(final int increment,
             final CheckIntervalData currentData, final State currentState, final long time) {
@@ -396,10 +397,10 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
     }
 
     /**
-     * Returns the {@code StateStrategy} object responsible for the given state.
+     * Returns the {@link StateStrategy} object responsible for the given state.
      *
      * @param state the state
-     * @return the corresponding {@code StateStrategy}
+     * @return the corresponding {@link StateStrategy}
      * @throws CircuitBreakingException if the strategy cannot be resolved
      */
     private static StateStrategy stateStrategy(final State state) {
@@ -432,7 +433,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
         private final long checkIntervalStart;
 
         /**
-         * Creates a new instance of {@code CheckIntervalData}.
+         * Creates a new instance of {@link CheckIntervalData}.
          *
          * @param count the current count value
          * @param intervalStart the start time of the check interval
@@ -461,7 +462,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
         }
 
         /**
-         * Returns a new instance of {@code CheckIntervalData} with the event counter
+         * Returns a new instance of {@link CheckIntervalData} with the event counter
          * incremented by the given delta. If the delta is 0, this object is returned.
          *
          * @param delta the delta
@@ -482,7 +483,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
         /**
          * Returns a flag whether the end of the current check interval is reached.
          *
-         * @param breaker the {@code CircuitBreaker}
+         * @param breaker the {@link CircuitBreaker}
          * @param currentData the current state object
          * @param now the current time
          * @return a flag whether the end of the current check interval is reached
@@ -493,13 +494,13 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
         }
 
         /**
-         * Checks whether the specified {@code CheckIntervalData} objects indicate that a
+         * Checks whether the specified {@link CheckIntervalData} objects indicate that a
          * state transition should occur. Here the logic which checks for thresholds
          * depending on the current state is implemented.
          *
-         * @param breaker the {@code CircuitBreaker}
-         * @param currentData the current {@code CheckIntervalData} object
-         * @param nextData the updated {@code CheckIntervalData} object
+         * @param breaker the {@link CircuitBreaker}
+         * @param currentData the current {@link CheckIntervalData} object
+         * @param nextData the updated {@link CheckIntervalData} object
          * @return a flag whether a state transition should be performed
          */
         public abstract boolean isStateTransition(EventCountCircuitBreaker breaker,
@@ -507,16 +508,16 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
 
         /**
          * Obtains the check interval to applied for the represented state from the given
-         * {@code CircuitBreaker}.
+         * {@link CircuitBreaker}.
          *
-         * @param breaker the {@code CircuitBreaker}
+         * @param breaker the {@link CircuitBreaker}
          * @return the check interval to be applied
          */
         protected abstract long fetchCheckInterval(EventCountCircuitBreaker breaker);
     }
 
     /**
-     * A specialized {@code StateStrategy} implementation for the state closed.
+     * A specialized {@link StateStrategy} implementation for the state closed.
      */
     private static class StateStrategyClosed extends StateStrategy {
 
@@ -539,7 +540,7 @@ public class EventCountCircuitBreaker extends AbstractCircuitBreaker<Integer> {
     }
 
     /**
-     * A specialized {@code StateStrategy} implementation for the state open.
+     * A specialized {@link StateStrategy} implementation for the state open.
      */
     private static class StateStrategyOpen extends StateStrategy {
         /**
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/FutureTasks.java b/src/main/java/org/apache/commons/lang3/concurrent/FutureTasks.java
index ce325c878..5adaf753d 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/FutureTasks.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/FutureTasks.java
@@ -31,7 +31,7 @@ public class FutureTasks {
     }
 
     /**
-     * Creates a {@code FutureTask} and runs the given {@code Callable}.
+     * Creates a {@link FutureTask} and runs the given {@link Callable}.
      *
      * @param <V> The result type returned by this FutureTask's {@code get} methods.
      * @param callable the Callable task.
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java
index 7c755d830..c0c295181 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java
@@ -39,7 +39,7 @@ package org.apache.commons.lang3.concurrent;
  * <p>
  * As an usage example consider that we have a class {@code ComplexObject} whose
  * instantiation is a complex operation. In order to apply lazy initialization
- * to this class, a subclass of {@code LazyInitializer} has to be created:
+ * to this class, a subclass of {@link LazyInitializer} has to be created:
  * </p>
  *
  * <pre>
@@ -89,7 +89,7 @@ public abstract class LazyInitializer<T> implements ConcurrentInitializer<T> {
      * Returns the object wrapped by this instance. On first access the object
      * is created. After that it is cached and can be accessed pretty fast.
      *
-     * @return the object initialized by this {@code LazyInitializer}
+     * @return the object initialized by this {@link LazyInitializer}
      * @throws ConcurrentException if an error occurred during initialization of
      * the object
      */
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java
index d627526e2..9ce572d5a 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java
@@ -33,22 +33,22 @@ import org.apache.commons.lang3.Validate;
  * <p>
  * This class has a similar purpose as {@link BackgroundInitializer}. However,
  * it is not limited to a single background initialization task. Rather it
- * manages an arbitrary number of {@code BackgroundInitializer} objects,
+ * manages an arbitrary number of {@link BackgroundInitializer} objects,
  * executes them, and waits until they are completely initialized. This is
  * useful for applications that have to perform multiple initialization tasks
  * that can run in parallel (i.e. that do not depend on each other). This class
- * takes care about the management of an {@code ExecutorService} and shares it
- * with the {@code BackgroundInitializer} objects it is responsible for; so the
+ * takes care about the management of an {@link ExecutorService} and shares it
+ * with the {@link BackgroundInitializer} objects it is responsible for; so the
  * using application need not bother with these details.
  * </p>
  * <p>
- * The typical usage scenario for {@code MultiBackgroundInitializer} is as
+ * The typical usage scenario for {@link MultiBackgroundInitializer} is as
  * follows:
  * </p>
  * <ul>
  * <li>Create a new instance of the class. Optionally pass in a pre-configured
- * {@code ExecutorService}. Alternatively {@code MultiBackgroundInitializer} can
- * create a temporary {@code ExecutorService} and delete it after initialization
+ * {@link ExecutorService}. Alternatively {@link MultiBackgroundInitializer} can
+ * create a temporary {@link ExecutorService} and delete it after initialization
  * is complete.</li>
  * <li>Create specialized {@link BackgroundInitializer} objects for the
  * initialization tasks to be performed and add them to the {@code
@@ -63,34 +63,34 @@ import org.apache.commons.lang3.Validate;
  * occurred.</li>
  * </ul>
  * <p>
- * {@code MultiBackgroundInitializer} starts a special controller task that
- * starts all {@code BackgroundInitializer} objects added to the instance.
+ * {@link MultiBackgroundInitializer} starts a special controller task that
+ * starts all {@link BackgroundInitializer} objects added to the instance.
  * Before the an initializer is started it is checked whether this initializer
- * already has an {@code ExecutorService} set. If this is the case, this {@code
+ * already has an {@link ExecutorService} set. If this is the case, this {@code
  * ExecutorService} is used for running the background task. Otherwise the
- * current {@code ExecutorService} of this {@code MultiBackgroundInitializer} is
+ * current {@link ExecutorService} of this {@link MultiBackgroundInitializer} is
  * shared with the initializer.
  * </p>
  * <p>
  * The easiest way of using this class is to let it deal with the management of
- * an {@code ExecutorService} itself: If no external {@code ExecutorService} is
- * provided, the class creates a temporary {@code ExecutorService} (that is
+ * an {@link ExecutorService} itself: If no external {@link ExecutorService} is
+ * provided, the class creates a temporary {@link ExecutorService} (that is
  * capable of executing all background tasks in parallel) and destroys it at the
  * end of background processing.
  * </p>
  * <p>
- * Alternatively an external {@code ExecutorService} can be provided - either at
+ * Alternatively an external {@link ExecutorService} can be provided - either at
  * construction time or later by calling the
  * {@link #setExternalExecutor(ExecutorService)} method. In this case all
- * background tasks are scheduled at this external {@code ExecutorService}.
+ * background tasks are scheduled at this external {@link ExecutorService}.
  * <strong>Important note:</strong> When using an external {@code
  * ExecutorService} be sure that the number of threads managed by the service is
  * large enough. Otherwise a deadlock can happen! This is the case in the
- * following scenario: {@code MultiBackgroundInitializer} starts a task that
- * starts all registered {@code BackgroundInitializer} objects and waits for
- * their completion. If for instance a single threaded {@code ExecutorService}
+ * following scenario: {@link MultiBackgroundInitializer} starts a task that
+ * starts all registered {@link BackgroundInitializer} objects and waits for
+ * their completion. If for instance a single threaded {@link ExecutorService}
  * is used, none of the background tasks can be executed, and the task created
- * by {@code MultiBackgroundInitializer} waits forever.
+ * by {@link MultiBackgroundInitializer} waits forever.
  * </p>
  *
  * @since 3.0
@@ -103,16 +103,16 @@ public class MultiBackgroundInitializer
         new HashMap<>();
 
     /**
-     * Creates a new instance of {@code MultiBackgroundInitializer}.
+     * Creates a new instance of {@link MultiBackgroundInitializer}.
      */
     public MultiBackgroundInitializer() {
     }
 
     /**
-     * Creates a new instance of {@code MultiBackgroundInitializer} and
-     * initializes it with the given external {@code ExecutorService}.
+     * Creates a new instance of {@link MultiBackgroundInitializer} and
+     * initializes it with the given external {@link ExecutorService}.
      *
-     * @param exec the {@code ExecutorService} for executing the background
+     * @param exec the {@link ExecutorService} for executing the background
      * tasks
      */
     public MultiBackgroundInitializer(final ExecutorService exec) {
@@ -120,13 +120,13 @@ public class MultiBackgroundInitializer
     }
 
     /**
-     * Adds a new {@code BackgroundInitializer} to this object. When this
-     * {@code MultiBackgroundInitializer} is started, the given initializer will
+     * Adds a new {@link BackgroundInitializer} to this object. When this
+     * {@link MultiBackgroundInitializer} is started, the given initializer will
      * be processed. This method must not be called after {@link #start()} has
      * been invoked.
      *
      * @param name the name of the initializer (must not be <b>null</b>)
-     * @param backgroundInitializer the {@code BackgroundInitializer} to add (must not be
+     * @param backgroundInitializer the {@link BackgroundInitializer} to add (must not be
      * <b>null</b>)
      * @throws NullPointerException if either {@code name} or {@code backgroundInitializer}
      *         is {@code null}
@@ -148,7 +148,7 @@ public class MultiBackgroundInitializer
      * Returns the number of tasks needed for executing all child {@code
      * BackgroundInitializer} objects in parallel. This implementation sums up
      * the required tasks for all child initializers (which is necessary if one
-     * of the child initializers is itself a {@code MultiBackgroundInitializer}
+     * of the child initializers is itself a {@link MultiBackgroundInitializer}
      * ). Then it adds 1 for the control task that waits for the completion of
      * the children.
      *
@@ -168,7 +168,7 @@ public class MultiBackgroundInitializer
     /**
      * Creates the results object. This implementation starts all child {@code
      * BackgroundInitializer} objects. Then it collects their results and
-     * creates a {@code MultiBackgroundInitializerResults} object with this
+     * creates a {@link MultiBackgroundInitializerResults} object with this
      * data. If a child initializer throws a checked exceptions, it is added to
      * the results object. Unchecked exceptions are propagated.
      *
@@ -210,7 +210,7 @@ public class MultiBackgroundInitializer
 
     /**
      * A data class for storing the results of the background initialization
-     * performed by {@code MultiBackgroundInitializer}. Objects of this inner
+     * performed by {@link MultiBackgroundInitializer}. Objects of this inner
      * class are returned by {@link MultiBackgroundInitializer#initialize()}.
      * They allow access to all result objects produced by the
      * {@link BackgroundInitializer} objects managed by the owning instance. It
@@ -229,11 +229,11 @@ public class MultiBackgroundInitializer
         private final Map<String, ConcurrentException> exceptions;
 
         /**
-         * Creates a new instance of {@code MultiBackgroundInitializerResults}
-         * and initializes it with maps for the {@code BackgroundInitializer}
+         * Creates a new instance of {@link MultiBackgroundInitializerResults}
+         * and initializes it with maps for the {@link BackgroundInitializer}
          * objects, their result objects and the exceptions thrown by them.
          *
-         * @param inits the {@code BackgroundInitializer} objects
+         * @param inits the {@link BackgroundInitializer} objects
          * @param results the result objects
          * @param excepts the exceptions
          */
@@ -247,11 +247,11 @@ public class MultiBackgroundInitializer
         }
 
         /**
-         * Returns the {@code BackgroundInitializer} with the given name. If the
+         * Returns the {@link BackgroundInitializer} with the given name. If the
          * name cannot be resolved, an exception is thrown.
          *
-         * @param name the name of the {@code BackgroundInitializer}
-         * @return the {@code BackgroundInitializer} with this name
+         * @param name the name of the {@link BackgroundInitializer}
+         * @return the {@link BackgroundInitializer} with this name
          * @throws NoSuchElementException if the name cannot be resolved
          */
         public BackgroundInitializer<?> getInitializer(final String name) {
@@ -262,10 +262,10 @@ public class MultiBackgroundInitializer
          * Returns the result object produced by the {@code
          * BackgroundInitializer} with the given name. This is the object
          * returned by the initializer's {@code initialize()} method. If this
-         * {@code BackgroundInitializer} caused an exception, <b>null</b> is
+         * {@link BackgroundInitializer} caused an exception, <b>null</b> is
          * returned. If the name cannot be resolved, an exception is thrown.
          *
-         * @param name the name of the {@code BackgroundInitializer}
+         * @param name the name of the {@link BackgroundInitializer}
          * @return the result object produced by this {@code
          * BackgroundInitializer}
          * @throws NoSuchElementException if the name cannot be resolved
@@ -276,10 +276,10 @@ public class MultiBackgroundInitializer
         }
 
         /**
-         * Returns a flag whether the {@code BackgroundInitializer} with the
+         * Returns a flag whether the {@link BackgroundInitializer} with the
          * given name caused an exception.
          *
-         * @param name the name of the {@code BackgroundInitializer}
+         * @param name the name of the {@link BackgroundInitializer}
          * @return a flag whether this initializer caused an exception
          * @throws NoSuchElementException if the name cannot be resolved
          */
@@ -289,12 +289,12 @@ public class MultiBackgroundInitializer
         }
 
         /**
-         * Returns the {@code ConcurrentException} object that was thrown by the
-         * {@code BackgroundInitializer} with the given name. If this
+         * Returns the {@link ConcurrentException} object that was thrown by the
+         * {@link BackgroundInitializer} with the given name. If this
          * initializer did not throw an exception, the return value is
          * <b>null</b>. If the name cannot be resolved, an exception is thrown.
          *
-         * @param name the name of the {@code BackgroundInitializer}
+         * @param name the name of the {@link BackgroundInitializer}
          * @return the exception thrown by this initializer
          * @throws NoSuchElementException if the name cannot be resolved
          */
@@ -304,8 +304,8 @@ public class MultiBackgroundInitializer
         }
 
         /**
-         * Returns a set with the names of all {@code BackgroundInitializer}
-         * objects managed by the {@code MultiBackgroundInitializer}.
+         * Returns a set with the names of all {@link BackgroundInitializer}
+         * objects managed by the {@link MultiBackgroundInitializer}.
          *
          * @return an (unmodifiable) set with the names of the managed {@code
          * BackgroundInitializer} objects
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ThresholdCircuitBreaker.java b/src/main/java/org/apache/commons/lang3/concurrent/ThresholdCircuitBreaker.java
index 4434ae8b3..cd7e09852 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/ThresholdCircuitBreaker.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/ThresholdCircuitBreaker.java
@@ -68,7 +68,7 @@ public class ThresholdCircuitBreaker extends AbstractCircuitBreaker<Long> {
     private final AtomicLong used;
 
     /**
-     * <p>Creates a new instance of {@code ThresholdCircuitBreaker} and initializes the threshold.</p>
+     * <p>Creates a new instance of {@link ThresholdCircuitBreaker} and initializes the threshold.</p>
      *
      * @param threshold the threshold.
      */
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java b/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java
index 28e0eb1d7..0f819c57e 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java
@@ -47,7 +47,7 @@ import org.apache.commons.lang3.Validate;
  * on a production system in a background process to gather statistical
  * information. This background processing should not produce so much database
  * load that the functionality and the performance of the production system are
- * impacted. Here a {@code TimedSemaphore} could be installed to guarantee that
+ * impacted. Here a {@link TimedSemaphore} could be installed to guarantee that
  * only a given number of database queries are issued per second.
  * </p>
  * <p>
@@ -78,7 +78,7 @@ import org.apache.commons.lang3.Validate;
  * </pre>
  *
  * <p>
- * The following code fragment shows how a {@code TimedSemaphore} is created
+ * The following code fragment shows how a {@link TimedSemaphore} is created
  * that allows only 10 operations per second and passed to the statistics
  * thread:
  * </p>
@@ -91,15 +91,15 @@ import org.apache.commons.lang3.Validate;
  *
  * <p>
  * When creating an instance the time period for the semaphore must be
- * specified. {@code TimedSemaphore} uses an executor service with a
+ * specified. {@link TimedSemaphore} uses an executor service with a
  * corresponding period to monitor this interval. The {@code
  * ScheduledExecutorService} to be used for this purpose can be provided at
  * construction time. Alternatively the class creates an internal executor
  * service.
  * </p>
  * <p>
- * Client code that uses {@code TimedSemaphore} has to call the
- * {@link #acquire()} method in each processing step. {@code TimedSemaphore}
+ * Client code that uses {@link TimedSemaphore} has to call the
+ * {@link #acquire()} method in each processing step. {@link TimedSemaphore}
  * keeps track of the number of invocations of the {@link #acquire()} method and
  * blocks the calling thread if the counter exceeds the limit specified. When
  * the timer signals the end of the time period the counter is reset and all
@@ -128,9 +128,9 @@ import org.apache.commons.lang3.Validate;
  * lets all callers pass directly.
  * </p>
  * <p>
- * When the {@code TimedSemaphore} is no more needed its {@link #shutdown()}
+ * When the {@link TimedSemaphore} is no more needed its {@link #shutdown()}
  * method should be called. This causes the periodic task that monitors the time
- * interval to be canceled. If the {@code ScheduledExecutorService} has been
+ * interval to be canceled. If the {@link ScheduledExecutorService} has been
  * created by the semaphore at construction time, it is also shut down.
  * resources. After that {@link #acquire()} must not be called any more.
  * </p>
@@ -140,7 +140,7 @@ import org.apache.commons.lang3.Validate;
 public class TimedSemaphore {
     /**
      * Constant for a value representing no limit. If the limit is set to a
-     * value less or equal this constant, the {@code TimedSemaphore} will be
+     * value less or equal this constant, the {@link TimedSemaphore} will be
      * effectively switched off.
      */
     public static final int NO_LIMIT = 0;
@@ -293,7 +293,7 @@ public class TimedSemaphore {
      * the limit for the current period has already been reached. If
      * {@link #shutdown()} has already been invoked, calling this method will
      * cause an exception. The very first call of this method starts the timer
-     * task which monitors the time period set for this {@code TimedSemaphore}.
+     * task which monitors the time period set for this {@link TimedSemaphore}.
      * From now on the semaphore is active.
      *
      * @throws InterruptedException if the thread gets interrupted
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/package-info.java b/src/main/java/org/apache/commons/lang3/concurrent/package-info.java
index 49f98a8e9..c3b1b3a4b 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/package-info.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/package-info.java
@@ -15,13 +15,15 @@
  * limitations under the License.
  */
 /**
- * <p>Provides support classes for multi-threaded programming.
- * This package is intended to be an extension to {@link java.util.concurrent}.
- * These classes are thread-safe.</p>
+ * <p>
+ * Provides support classes for multi-threaded programming. This package is intended to be an extension to
+ * {@link java.util.concurrent}. These classes are thread-safe.
+ * </p>
  *
- * <p> A group of classes deals with the correct creation and initialization of objects that are accessed by multiple threads.
- * All these classes implement the {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer} interface which provides just a
- * single method:
+ * <p>
+ * A group of classes deals with the correct creation and initialization of objects that are accessed by multiple
+ * threads. All these classes implement the {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer} interface
+ * which provides just a single method:
  * </p>
  *
  * <pre>
@@ -32,33 +34,42 @@
  * </code>
  * </pre>
  *
- * <p>A {@code ConcurrentInitializer} produces an object.
- * By calling the {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer#get() get()} method the object managed by the initializer can be obtained.
- * There are different implementations of the interface available
- * addressing various use cases:
+ * <p>
+ * A {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer} produces an object. By calling the
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer#get() get()} method the object managed by the
+ * initializer can be obtained. There are different implementations of the interface available addressing various use
+ * cases:
  * </p>
  *
- * <p> {@link org.apache.commons.lang3.concurrent.ConstantInitializer} is a very straightforward implementation of the {@code ConcurrentInitializer} interface:
- * An instance is passed an object when it is constructed.
- * In its {@code get()} method it simply returns this object.
- * This is useful, for instance in unit tests or in cases when you want to pass a specific object to a component which expects a {@code ConcurrentInitializer}.
+ * <p>
+ * {@link org.apache.commons.lang3.concurrent.ConstantInitializer} is a very straightforward implementation of the
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer} interface: An instance is passed an object when it
+ * is constructed. In its {@code get()} method it simply returns this object. This is useful, for instance in unit tests
+ * or in cases when you want to pass a specific object to a component which expects a
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer}.
  * </p>
  *
- * <p>The {@link org.apache.commons.lang3.concurrent.LazyInitializer} class can be used to defer the creation of an object until it is actually used.
- * This makes sense, for instance, if the creation of the object is expensive and would slow down application startup or if the object is needed only for special executions.
- * {@code LazyInitializer} implements the <em>double-check idiom for an instance field</em> as discussed in Joshua Bloch's "Effective Java", 2nd edition, item 71.
- * It uses <strong>volatile</strong> fields to reduce the amount of synchronization.
- * Note that this idiom is appropriate for instance fields only.
- * For <strong>static</strong> fields there are superior alternatives.</p>
+ * <p>
+ * The {@link org.apache.commons.lang3.concurrent.LazyInitializer} class can be used to defer the creation of an object
+ * until it is actually used. This makes sense, for instance, if the creation of the object is expensive and would slow
+ * down application startup or if the object is needed only for special executions.
+ * {@link org.apache.commons.lang3.concurrent.LazyInitializer} implements the <em>double-check idiom for an instance
+ * field</em> as discussed in Joshua Bloch's "Effective Java", 2nd edition, item 71. It uses <strong>volatile</strong>
+ * fields to reduce the amount of synchronization. Note that this idiom is appropriate for instance fields only. For
+ * <strong>static</strong> fields there are superior alternatives.
+ * </p>
  *
- * <p>We provide an example use case to demonstrate the usage of this class:
- * A server application uses multiple worker threads to process client requests.
- * If such a request causes a fatal error, an administrator is to be notified using a special messaging service.
- * We assume that the creation of the messaging service is an expensive operation.
- * So it should only be performed if an error actually occurs.
- * Here is where {@code LazyInitializer} comes into play.
- * We create a specialized subclass for creating and initializing an instance of our messaging service.
- * {@code LazyInitializer} declares an abstract {@link org.apache.commons.lang3.concurrent.LazyInitializer#initialize() initialize()} method which we have to implement to create the messaging service object:</p>
+ * <p>
+ * We provide an example use case to demonstrate the usage of this class: A server application uses multiple worker
+ * threads to process client requests. If such a request causes a fatal error, an administrator is to be notified using
+ * a special messaging service. We assume that the creation of the messaging service is an expensive operation. So it
+ * should only be performed if an error actually occurs. Here is where
+ * {@link org.apache.commons.lang3.concurrent.LazyInitializer} comes into play. We create a specialized subclass for
+ * creating and initializing an instance of our messaging service.
+ * {@link org.apache.commons.lang3.concurrent.LazyInitializer} declares an abstract
+ * {@link org.apache.commons.lang3.concurrent.LazyInitializer#initialize() initialize()} method which we have to
+ * implement to create the messaging service object:
+ * </p>
  *
  * <pre>
  * <code>
@@ -72,8 +83,11 @@
  * </code>
  * </pre>
  *
- * <p> Now each server thread is passed a reference to a shared instance of our new {@code MessagingServiceInitializer} class.
- * The threads run in a loop processing client requests. If an error is detected, the messaging service is obtained from the initializer, and the administrator is notified:</p>
+ * <p>
+ * Now each server thread is passed a reference to a shared instance of our new {@code MessagingServiceInitializer}
+ * class. The threads run in a loop processing client requests. If an error is detected, the messaging service is
+ * obtained from the initializer, and the administrator is notified:
+ * </p>
  *
  * <pre>
  * <code>
@@ -105,41 +119,65 @@
  * </code>
  * </pre>
  *
- * <p>The {@link org.apache.commons.lang3.concurrent.AtomicInitializer} class is very similar to {@code LazyInitializer}.
- * It serves the same purpose: to defer the creation of an object until it is needed.
- * The internal structure is also very similar.
- * Again there is an abstract {@link org.apache.commons.lang3.concurrent.AtomicInitializer#initialize() initialize()} method which has to be implemented by concrete subclasses in order to create and initialize the managed object.
- * Actually, in our example above we can turn the {@code MessagingServiceInitializer} into an atomic initializer by simply changing the <strong>extends</strong> declaration to refer to {@code AtomicInitializer&lt;MessagingService&gt;} as super class.</p>
- *
- * <p>With {@link org.apache.commons.lang3.concurrent.AtomicSafeInitializer} there is yet another variant implementing the lazy initializing pattern.
- * Its implementation is close to {@code AtomicInitializer}; it also uses atomic variables internally and therefore does not need synchronization.
- * The name &quot;Safe&quot; is derived from the fact that it implements an additional check which guarantees that the {@link org.apache.commons.lang3.concurrent.AtomicSafeInitializer#initialize() initialize()} method is called only once.
- * So it behaves exactly in the same way as {@code LazyInitializer}.</p>
- *
- * <p>Now, which one of the lazy initializer implementations should you use?
- * First of all we have to state that is is problematic to give general recommendations regarding the performance of these classes.
- * The initializers  make use of low-level functionality whose efficiency depends on multiple factors including the target platform and the number of concurrent threads.
- * So developers should make their own benchmarks in scenarios close to their specific use cases.
- * The following statements are rules of thumb which have to be verified in practice.</p>
- *
- * <p>{@code AtomicInitializer} is probably the most efficient implementation due to its lack of synchronization and further checks.
- * Its main drawback is that the {@code initialize()} method can be called multiple times.
- * In cases where this is not an issue {@code AtomicInitializer} is a good choice.
- * {@code AtomicSafeInitializer} and  {@code LazyInitializer} both guarantee that the initialization method is called only once.
- * Because {@code AtomicSafeInitializer} does not use synchronization it is probably slightly more efficient than {@code LazyInitializer}, but the concrete numbers might depend on the level of concurrency.</p>
- *
- * <p>Another implementation of the {@code ConcurrentInitializer} interface is {@link org.apache.commons.lang3.concurrent.BackgroundInitializer}.
- * It is again an abstract base class with an {@link org.apache.commons.lang3.concurrent.BackgroundInitializer#initialize() initialize()} method that has to be defined by concrete subclasses.
- * The idea of {@code BackgroundInitializer} is that it calls the {@code initialize()} method in a separate worker thread.
- * An application creates a background initializer and starts it.
- * Then it can continue with its work while the initializer runs in parallel.
- * When the application needs the results of the initializer it calls its {@code get()} method.
- * {@code get()} blocks until the initialization is complete.
- * This is useful for instance at application startup.
- * Here initialization steps (e.g. reading configuration files, opening a database connection, etc.) can be run in background threads while the application shows a splash screen and constructs its UI.</p>
- *
- * <p>As a concrete example consider an application that has to read the content of a URL - maybe a page with news - which is to be displayed to the user after login.
- * Because loading the data over the network can take some time a specialized implementation of {@code BackgroundInitializer} can be created for this purpose:</p>
+ * <p>
+ * The {@link org.apache.commons.lang3.concurrent.AtomicInitializer} class is very similar to
+ * {@link org.apache.commons.lang3.concurrent.LazyInitializer}. It serves the same purpose: to defer the creation of an
+ * object until it is needed. The internal structure is also very similar. Again there is an abstract
+ * {@link org.apache.commons.lang3.concurrent.AtomicInitializer#initialize() initialize()} method which has to be
+ * implemented by concrete subclasses in order to create and initialize the managed object. Actually, in our example
+ * above we can turn the {@code MessagingServiceInitializer} into an atomic initializer by simply changing the
+ * <strong>extends</strong> declaration to refer to {@code AtomicInitializer&lt;MessagingService&gt;} as super class.
+ * </p>
+ *
+ * <p>
+ * With {@link org.apache.commons.lang3.concurrent.AtomicSafeInitializer} there is yet another variant implementing the
+ * lazy initializing pattern. Its implementation is close to
+ * {@link org.apache.commons.lang3.concurrent.AtomicInitializer}; it also uses atomic variables internally and therefore
+ * does not need synchronization. The name &quot;Safe&quot; is derived from the fact that it implements an additional
+ * check which guarantees that the {@link org.apache.commons.lang3.concurrent.AtomicSafeInitializer#initialize()
+ * initialize()} method is called only once. So it behaves exactly in the same way as
+ * {@link org.apache.commons.lang3.concurrent.LazyInitializer}.
+ * </p>
+ *
+ * <p>
+ * Now, which one of the lazy initializer implementations should you use? First of all we have to state that is is
+ * problematic to give general recommendations regarding the performance of these classes. The initializers make use of
+ * low-level functionality whose efficiency depends on multiple factors including the target platform and the number of
+ * concurrent threads. So developers should make their own benchmarks in scenarios close to their specific use cases.
+ * The following statements are rules of thumb which have to be verified in practice.
+ * </p>
+ *
+ * <p>
+ * {@link org.apache.commons.lang3.concurrent.AtomicInitializer} is probably the most efficient implementation due to
+ * its lack of synchronization and further checks. Its main drawback is that the {@code initialize()} method can be
+ * called multiple times. In cases where this is not an issue
+ * {@link org.apache.commons.lang3.concurrent.AtomicInitializer} is a good choice.
+ * {@link org.apache.commons.lang3.concurrent.AtomicSafeInitializer} and
+ * {@link org.apache.commons.lang3.concurrent.LazyInitializer} both guarantee that the initialization method is called
+ * only once. Because {@link org.apache.commons.lang3.concurrent.AtomicSafeInitializer} does not use synchronization it
+ * is probably slightly more efficient than {@link org.apache.commons.lang3.concurrent.LazyInitializer}, but the
+ * concrete numbers might depend on the level of concurrency.
+ * </p>
+ *
+ * <p>
+ * Another implementation of the {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer} interface is
+ * {@link org.apache.commons.lang3.concurrent.BackgroundInitializer}. It is again an abstract base class with an
+ * {@link org.apache.commons.lang3.concurrent.BackgroundInitializer#initialize() initialize()} method that has to be
+ * defined by concrete subclasses. The idea of {@link org.apache.commons.lang3.concurrent.BackgroundInitializer} is that
+ * it calls the {@code initialize()} method in a separate worker thread. An application creates a background initializer
+ * and starts it. Then it can continue with its work while the initializer runs in parallel. When the application needs
+ * the results of the initializer it calls its {@code get()} method. {@code get()} blocks until the initialization is
+ * complete. This is useful for instance at application startup. Here initialization steps (e.g. reading configuration
+ * files, opening a database connection, etc.) can be run in background threads while the application shows a splash
+ * screen and constructs its UI.
+ * </p>
+ *
+ * <p>
+ * As a concrete example consider an application that has to read the content of a URL - maybe a page with news - which
+ * is to be displayed to the user after login. Because loading the data over the network can take some time a
+ * specialized implementation of {@link org.apache.commons.lang3.concurrent.BackgroundInitializer} can be created for
+ * this purpose:
+ * </p>
  *
  * <pre>
  * <code>
@@ -165,9 +203,10 @@
  * </code>
  * </pre>
  *
- * <p>An application creates an instance of {@code URLLoader} and starts it.
- * Then it can do other things.
- * When it needs the content of the URL it calls the initializer's {@code get()} method:</p>
+ * <p>
+ * An application creates an instance of {@code URLLoader} and starts it. Then it can do other things. When it needs the
+ * content of the URL it calls the initializer's {@code get()} method:
+ * </p>
  *
  * <pre>
  * <code>
@@ -188,24 +227,30 @@
  * </code>
  * </pre>
  *
- * <p> Related to {@code BackgroundInitializer} is the {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer} class.
- * As the name implies, this class can handle multiple initializations in parallel.
- * The basic usage scenario is that a {@code MultiBackgroundInitializer} instance is created.
- * Then an arbitrary number of {@code BackgroundInitializer} objects is added using the {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer#addInitializer(String, BackgroundInitializer)} method.
- * When adding an initializer a string has to be provided which is later used to obtain the result for this initializer.
- * When all initializers have been added the {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer#start()} method is called.
- * This starts processing of all initializers.
- * Later the {@code get()} method can be called.
- * It waits until all initializers have finished their initialization.
- * {@code get()} returns an object of type {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer.MultiBackgroundInitializerResults}.
- * This object provides information about all initializations that have been performed.
- * It can be checked whether a specific initializer was successful or threw an exception.
- * Of course, all initialization results can be queried.</p>
- *
- * <p>With {@code MultiBackgroundInitializer} we can extend our example to perform multiple initialization steps.
- * Suppose that in addition to loading a web site we also want to create a JPA entity manager factory and read a configuration file.
- * We assume that corresponding {@code BackgroundInitializer} implementations exist.
- * The following example fragment shows the usage of {@code MultiBackgroundInitializer} for this purpose:</p>
+ * <p>
+ * Related to {@link org.apache.commons.lang3.concurrent.BackgroundInitializer} is the
+ * {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer} class. As the name implies, this class can
+ * handle multiple initializations in parallel. The basic usage scenario is that a
+ * {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer} instance is created. Then an arbitrary number
+ * of {@link org.apache.commons.lang3.concurrent.BackgroundInitializer} objects is added using the
+ * {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer#addInitializer(String, BackgroundInitializer)}
+ * method. When adding an initializer a string has to be provided which is later used to obtain the result for this
+ * initializer. When all initializers have been added the
+ * {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer#start()} method is called. This starts
+ * processing of all initializers. Later the {@code get()} method can be called. It waits until all initializers have
+ * finished their initialization. {@code get()} returns an object of type
+ * {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer.MultiBackgroundInitializerResults}. This object
+ * provides information about all initializations that have been performed. It can be checked whether a specific
+ * initializer was successful or threw an exception. Of course, all initialization results can be queried.
+ * </p>
+ *
+ * <p>
+ * With {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer} we can extend our example to perform
+ * multiple initialization steps. Suppose that in addition to loading a web site we also want to create a JPA entity
+ * manager factory and read a configuration file. We assume that corresponding
+ * {@link org.apache.commons.lang3.concurrent.BackgroundInitializer} implementations exist. The following example
+ * fragment shows the usage of {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer} for this purpose:
+ * </p>
  *
  * <pre>
  * <code>
@@ -227,38 +272,61 @@
  * </code>
  * </pre>
  *
- * <p>The child initializers are added to the multi initializer and are assigned a unique name.
- * The object returned by the {@code get()} method is then queried for the single results using these unique names.</p>
+ * <p>
+ * The child initializers are added to the multi initializer and are assigned a unique name. The object returned by the
+ * {@code get()} method is then queried for the single results using these unique names.
+ * </p>
  *
- * <p> If background initializers - including {@code MultiBackgroundInitializer} - are created using the standard constructor, they create their own {@link java.util.concurrent.ExecutorService} which is used behind the scenes to execute the worker tasks.
- * It is also possible to pass in an {@code ExecutorService} when the initializer is constructed.
- * That way client code can configure the {@code ExecutorService} according to its specific needs; for instance, the number of threads available could be limited.</p>
+ * <p>
+ * If background initializers - including {@link org.apache.commons.lang3.concurrent.MultiBackgroundInitializer} - are
+ * created using the standard constructor, they create their own {@link java.util.concurrent.ExecutorService} which is
+ * used behind the scenes to execute the worker tasks. It is also possible to pass in an
+ * {@link java.util.concurrent.ExecutorService} when the initializer is constructed. That way client code can configure
+ * the {@link java.util.concurrent.ExecutorService} according to its specific needs; for instance, the number of threads
+ * available could be limited.
+ * </p>
  *
  * <h2>Utility Classes</h2>
  *
- * <p>Another group of classes in the new {@code concurrent} package offers some generic functionality related to concurrency.
- * There is the {@link org.apache.commons.lang3.concurrent.ConcurrentUtils} class with a bunch of static utility methods.
- * One focus of this class is dealing with exceptions thrown by JDK classes.
- * Many JDK classes of the executor framework throw exceptions of type {@link java.util.concurrent.ExecutionException} if something goes wrong.
- * The root cause of these exceptions can also be a runtime exception or even an error.
- * In typical Java programming you often do not want to deal with runtime exceptions directly; rather you let them fall through the hierarchy of method invocations until they reach a central exception handler.
- * Checked exceptions in contrast are usually handled close to their occurrence.
- * With {@code ExecutionException} this principle is violated.
- * Because it is a checked exception, an application is forced to handle it even if the cause is a runtime exception.
- * So you typically have to inspect the cause of the {@code ExecutionException} and test whether it is a checked exception which has to be handled. If this is not the case, the causing exception can be rethrown.
- * </p>
- *
- * <p>The {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#extractCause(java.util.concurrent.ExecutionException)} method does this work for you.
- * It is passed an {@code ExecutionException} and tests its root cause.
- * If this is an error or a runtime exception, it is directly rethrown.
- * Otherwise, an instance of {@link org.apache.commons.lang3.concurrent.ConcurrentException} is created and initialized with the root cause
- * ({@code ConcurrentException} is a new exception class in the {@code o.a.c.l.concurrent} package).
- * So if you get such a {@code ConcurrentException}, you can be sure that the original cause for the {@code ExecutionException} was a checked exception.
- * For users who prefer runtime exceptions in general there is also an {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#extractCauseUnchecked(java.util.concurrent.ExecutionException)} method which behaves like {@code extractCause()}, but returns the unchecked exception {@link org.apache.commons.lang3.concurrent.ConcurrentRuntimeException} instead.</p>
- *
- * <p>In addition to the {@code extractCause()} methods there are corresponding {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#handleCause(java.util.concurrent.ExecutionException)} and {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#handleCauseUnchecked(java.util.concurrent.ExecutionException)} methods.
- * These methods extract the cause of the passed in {@code ExecutionException} and throw the resulting {@code ConcurrentException} or {@code ConcurrentRuntimeException}.
- * This makes it easy to transform an {@code ExecutionException} into a {@code ConcurrentException} ignoring unchecked exceptions:</p>
+ * <p>
+ * Another group of classes in the new {@code concurrent} package offers some generic functionality related to
+ * concurrency. There is the {@link org.apache.commons.lang3.concurrent.ConcurrentUtils} class with a bunch of static
+ * utility methods. One focus of this class is dealing with exceptions thrown by JDK classes. Many JDK classes of the
+ * executor framework throw exceptions of type {@link java.util.concurrent.ExecutionException} if something goes wrong.
+ * The root cause of these exceptions can also be a runtime exception or even an error. In typical Java programming you
+ * often do not want to deal with runtime exceptions directly; rather you let them fall through the hierarchy of method
+ * invocations until they reach a central exception handler. Checked exceptions in contrast are usually handled close to
+ * their occurrence. With {@link java.util.concurrent.ExecutionException} this principle is violated. Because it is a
+ * checked exception, an application is forced to handle it even if the cause is a runtime exception. So you typically
+ * have to inspect the cause of the {@link java.util.concurrent.ExecutionException} and test whether it is a checked
+ * exception which has to be handled. If this is not the case, the causing exception can be rethrown.
+ * </p>
+ *
+ * <p>
+ * The {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#extractCause(java.util.concurrent.ExecutionException)}
+ * method does this work for you. It is passed an {@link java.util.concurrent.ExecutionException} and tests its root
+ * cause. If this is an error or a runtime exception, it is directly rethrown. Otherwise, an instance of
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentException} is created and initialized with the root cause
+ * ({@link org.apache.commons.lang3.concurrent.ConcurrentException} is a new exception class in the
+ * {@code o.a.c.l.concurrent} package). So if you get such a
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentException}, you can be sure that the original cause for the
+ * {@link java.util.concurrent.ExecutionException} was a checked exception. For users who prefer runtime exceptions in
+ * general there is also an
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#extractCauseUnchecked(java.util.concurrent.ExecutionException)}
+ * method which behaves like {@code extractCause()}, but returns the unchecked exception
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentRuntimeException} instead.
+ * </p>
+ *
+ * <p>
+ * In addition to the {@code extractCause()} methods there are corresponding
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#handleCause(java.util.concurrent.ExecutionException)} and
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#handleCauseUnchecked(java.util.concurrent.ExecutionException)}
+ * methods. These methods extract the cause of the passed in {@link java.util.concurrent.ExecutionException} and throw
+ * the resulting {@link org.apache.commons.lang3.concurrent.ConcurrentException} or
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentRuntimeException}. This makes it easy to transform an
+ * {@link java.util.concurrent.ExecutionException} into a
+ * {@link org.apache.commons.lang3.concurrent.ConcurrentException} ignoring unchecked exceptions:
+ * </p>
  *
  * <pre>
  * <code>
@@ -272,13 +340,16 @@
  * </code>
  * </pre>
  *
- * <p>There is also some support for the concurrent initializers introduced in the last sub section.
- * The {@code initialize()} method is passed a {@code ConcurrentInitializer} object and returns the object created by this initializer.
- * It is null-safe.
- * The {@code initializeUnchecked()} method works analogously, but a {@code ConcurrentException} throws by the initializer is rethrown as a {@code ConcurrentRuntimeException}.
- * This is especially useful if the specific {@code ConcurrentInitializer} does not throw checked exceptions.
- * Using this method the code for requesting the object of an initializer becomes less verbose.
- * The direct invocation looks as follows:</p>
+ * <p>
+ * There is also some support for the concurrent initializers introduced in the last sub section. The
+ * {@code initialize()} method is passed a {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer} object and
+ * returns the object created by this initializer. It is null-safe. The {@code initializeUnchecked()} method works
+ * analogously, but a {@link org.apache.commons.lang3.concurrent.ConcurrentException} throws by the initializer is
+ * rethrown as a {@link org.apache.commons.lang3.concurrent.ConcurrentRuntimeException}. This is especially useful if
+ * the specific {@link org.apache.commons.lang3.concurrent.ConcurrentInitializer} does not throw checked exceptions.
+ * Using this method the code for requesting the object of an initializer becomes less verbose. The direct invocation
+ * looks as follows:
+ * </p>
  *
  * <pre>
  * <code>
@@ -292,7 +363,10 @@
  * </code>
  * </pre>
  *
- * <p>Using the {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#initializeUnchecked(ConcurrentInitializer)} method, this becomes:</p>
+ * <p>
+ * Using the {@link org.apache.commons.lang3.concurrent.ConcurrentUtils#initializeUnchecked(ConcurrentInitializer)}
+ * method, this becomes:
+ * </p>
  *
  * <pre>
  * <code>
@@ -302,16 +376,23 @@
  * </code>
  * </pre>
  *
- * <p>Another utility class deals with the creation of threads.
- * When using the <em>Executor</em> framework new in JDK 1.5 the developer usually does not have to care about creating threads; the executors create the threads they need on demand.
- * However, sometimes it is desired to set some properties of the newly created worker threads.
- * This is possible through the {@link java.util.concurrent.ThreadFactory} interface; an implementation of this interface has to be created and passed to an executor on creation time.
- * Currently, the JDK does not provide an implementation of {@code ThreadFactory}, so one has to start from scratch. </p>
+ * <p>
+ * Another utility class deals with the creation of threads. When using the <em>Executor</em> framework new in JDK 1.5
+ * the developer usually does not have to care about creating threads; the executors create the threads they need on
+ * demand. However, sometimes it is desired to set some properties of the newly created worker threads. This is possible
+ * through the {@link java.util.concurrent.ThreadFactory} interface; an implementation of this interface has to be
+ * created and passed to an executor on creation time. Currently, the JDK does not provide an implementation of
+ * {@link java.util.concurrent.ThreadFactory}, so one has to start from scratch.
+ * </p>
  *
- * <p> With {@link org.apache.commons.lang3.concurrent.BasicThreadFactory} Commons Lang has an implementation of {@code ThreadFactory} that works out of the box for many common use cases.
- * For instance, it is possible to set a naming pattern for the new threads, set the daemon flag and a priority, or install a handler for uncaught exceptions.
- * Instances of {@code BasicThreadFactory} are created and configured using the nested {@link org.apache.commons.lang3.concurrent.BasicThreadFactory.Builder} class.
- * The following example shows a typical usage scenario:</p>
+ * <p>
+ * With {@link org.apache.commons.lang3.concurrent.BasicThreadFactory} Commons Lang has an implementation of
+ * {@link java.util.concurrent.ThreadFactory} that works out of the box for many common use cases. For instance, it is
+ * possible to set a naming pattern for the new threads, set the daemon flag and a priority, or install a handler for
+ * uncaught exceptions. Instances of {@link org.apache.commons.lang3.concurrent.BasicThreadFactory} are created and
+ * configured using the nested {@link org.apache.commons.lang3.concurrent.BasicThreadFactory.Builder} class. The
+ * following example shows a typical usage scenario:
+ * </p>
  *
  * <pre>
  * <code>
@@ -324,52 +405,66 @@
  * </code>
  * </pre>
  *
- * <p>The nested {@code Builder} class defines some methods for configuring the new {@code BasicThreadFactory} instance.
- * Objects of this class are immutable, so these attributes cannot be changed later.
- * The naming pattern is a string which can be passed to {@code String.format()}.
- * The placeholder <em>%d</em> is replaced by an increasing counter value.
- * An instance can wrap another {@code ThreadFactory} implementation; this is achieved by calling the builder's {@link org.apache.commons.lang3.concurrent.BasicThreadFactory.Builder#wrappedFactory(java.util.concurrent.ThreadFactory) wrappedFactory(ThreadFactory)} method.
- * This factory is then used for creating new threads; after that the specific attributes are applied to the new thread.
- * If no wrapped factory is set, the default factory provided by the JDK is used.</p>
+ * <p>
+ * The nested {@link org.apache.commons.lang3.concurrent.BasicThreadFactory.Builder} class defines some methods for
+ * configuring the new {@link org.apache.commons.lang3.concurrent.BasicThreadFactory} instance. Objects of this class
+ * are immutable, so these attributes cannot be changed later. The naming pattern is a string which can be passed to
+ * {@link java.lang.String#format(java.util.Locale, String, Object...)}. The placeholder <em>%d</em> is replaced by an
+ * increasing counter value. An instance can wrap another {@link java.util.concurrent.ThreadFactory} implementation;
+ * this is achieved by calling the builder's
+ * {@link org.apache.commons.lang3.concurrent.BasicThreadFactory.Builder#wrappedFactory(java.util.concurrent.ThreadFactory)
+ * wrappedFactory(ThreadFactory)} method. This factory is then used for creating new threads; after that the specific
+ * attributes are applied to the new thread. If no wrapped factory is set, the default factory provided by the JDK is
+ * used.
+ * </p>
  *
  * <h2>Synchronization objects</h2>
  *
- * <p>The {@code concurrent} package also provides some support for specific synchronization problems with threads.</p>
- *
- * <p> {@link org.apache.commons.lang3.concurrent.TimedSemaphore} allows restricted access to a resource in a given time frame.
- * Similar to a semaphore, a number of permits can be acquired.
- * What is new is the fact that the permits available are related to a given time unit.
- * For instance, the timed semaphore can be configured to allow 10 permits in a second.
- * Now multiple threads access the semaphore and call its {@link org.apache.commons.lang3.concurrent.TimedSemaphore#acquire()} method.
- * The semaphore keeps track about the number of granted permits in the current time frame.
- * Only 10 calls are allowed; if there are further callers, they are blocked until the time frame (one second in this example) is over.
- * Then all blocking threads are released, and the counter of available permits is reset to 0.
- * So the game can start anew.</p>
- *
- * <p> What are use cases for {@code TimedSemaphore}?
- * One example is to artificially limit the load produced by multiple threads.
- * Consider a batch application accessing a database to extract statistical data.
- * The application runs multiple threads which issue database queries in parallel and perform some calculation on the results.
- * If the database to be processed is huge and is also used by a production system, multiple factors have to be balanced:
- * On one hand, the time required for the statistical evaluation should not take too long.
- * Therefore you will probably use a larger number of threads because most of its life time a thread will just wait for the database to return query results.
- * On the other hand, the load on the database generated by all these threads should be limited so that the responsiveness of the production system is not affected.
- * With a {@code TimedSemaphore} object this can be achieved.
- * The semaphore can be configured to allow e.g. 100 queries per second.
- * After these queries have been sent to the database the threads have to wait until the second is over - then they can query again.
- * By fine-tuning the limit enforced by the semaphore a good balance between performance and database load can be established.
- * It is even possible to chang? the number of available permits at runtime.
- * So this number can be reduced during the typical working hours and increased at night.</p>
- *
- * <p>The following code examples demonstrate parts of the implementation of such a scenario.
- * First the batch application has to create an instance of {@code TimedSemaphore} and to initialize its properties with default values:</p>
+ * <p>
+ * The {@code concurrent} package also provides some support for specific synchronization problems with threads.
+ * </p>
+ *
+ * <p>
+ * {@link org.apache.commons.lang3.concurrent.TimedSemaphore} allows restricted access to a resource in a given time
+ * frame. Similar to a semaphore, a number of permits can be acquired. What is new is the fact that the permits
+ * available are related to a given time unit. For instance, the timed semaphore can be configured to allow 10 permits
+ * in a second. Now multiple threads access the semaphore and call its
+ * {@link org.apache.commons.lang3.concurrent.TimedSemaphore#acquire()} method. The semaphore keeps track about the
+ * number of granted permits in the current time frame. Only 10 calls are allowed; if there are further callers, they
+ * are blocked until the time frame (one second in this example) is over. Then all blocking threads are released, and
+ * the counter of available permits is reset to 0. So the game can start anew.
+ * </p>
+ *
+ * <p>
+ * What are use cases for {@link org.apache.commons.lang3.concurrent.TimedSemaphore}? One example is to artificially
+ * limit the load produced by multiple threads. Consider a batch application accessing a database to extract statistical
+ * data. The application runs multiple threads which issue database queries in parallel and perform some calculation on
+ * the results. If the database to be processed is huge and is also used by a production system, multiple factors have
+ * to be balanced: On one hand, the time required for the statistical evaluation should not take too long. Therefore you
+ * will probably use a larger number of threads because most of its life time a thread will just wait for the database
+ * to return query results. On the other hand, the load on the database generated by all these threads should be limited
+ * so that the responsiveness of the production system is not affected. With a
+ * {@link org.apache.commons.lang3.concurrent.TimedSemaphore} object this can be achieved. The semaphore can be
+ * configured to allow e.g. 100 queries per second. After these queries have been sent to the database the threads have
+ * to wait until the second is over - then they can query again. By fine-tuning the limit enforced by the semaphore a
+ * good balance between performance and database load can be established. It is even possible to chang? the number of
+ * available permits at runtime. So this number can be reduced during the typical working hours and increased at night.
+ * </p>
+ *
+ * <p>
+ * The following code examples demonstrate parts of the implementation of such a scenario. First the batch application
+ * has to create an instance of {@link org.apache.commons.lang3.concurrent.TimedSemaphore} and to initialize its
+ * properties with default values:
+ * </p>
  *
  * {@code TimedSemaphore semaphore = new TimedSemaphore(1, TimeUnit.SECONDS, 100);}
  *
- * <p>Here we specify that the semaphore should allow 100 permits in one second.
- * This is effectively the limit of database queries per second in our example use case.
- * Next the server threads issuing database queries and performing statistical operations can be initialized.
- * They are passed a reference to the semaphore at creation time. Before they execute a query they have to acquire a permit.</p>
+ * <p>
+ * Here we specify that the semaphore should allow 100 permits in one second. This is effectively the limit of database
+ * queries per second in our example use case. Next the server threads issuing database queries and performing
+ * statistical operations can be initialized. They are passed a reference to the semaphore at creation time. Before they
+ * execute a query they have to acquire a permit.
+ * </p>
  *
  * <pre>
  * <code>
@@ -397,14 +492,14 @@
  * </code>
  * </pre>
  *
- * <p>The important line here is the call to {@code semaphore.acquire()}.
- * If the number of permits in the current time frame has not yet been reached, the call returns immediately.
- * Otherwise, it blocks until the end of the time frame.
- * The last piece missing is a scheduler service which adapts the number of permits allowed by the semaphore according to the time of day.
- * We assume that this service is pretty simple and knows only two different time slots:
- * working shift and night shift.
- * The service is triggered periodically.
- * It then determines the current time slot and configures the timed semaphore accordingly.</p>
+ * <p>
+ * The important line here is the call to {@code semaphore.acquire()}. If the number of permits in the current time
+ * frame has not yet been reached, the call returns immediately. Otherwise, it blocks until the end of the time frame.
+ * The last piece missing is a scheduler service which adapts the number of permits allowed by the semaphore according
+ * to the time of day. We assume that this service is pretty simple and knows only two different time slots: working
+ * shift and night shift. The service is triggered periodically. It then determines the current time slot and configures
+ * the timed semaphore accordingly.
+ * </p>
  *
  * <pre>
  * <code>
@@ -428,9 +523,11 @@
  * </code>
  * </pre>
  *
- * <p>With the {@link org.apache.commons.lang3.concurrent.TimedSemaphore#setLimit(int)} method the number of permits allowed for a time frame can be changed.
- * There are some other methods for querying the internal state of a timed semaphore.
- * Also some statistical data is available, e.g. the average number of {@code acquire()} calls per time frame.
- * When a timed semaphore is no more needed, its {@code shutdown()} method has to be called.</p>
+ * <p>
+ * With the {@link org.apache.commons.lang3.concurrent.TimedSemaphore#setLimit(int)} method the number of permits
+ * allowed for a time frame can be changed. There are some other methods for querying the internal state of a timed
+ * semaphore. Also some statistical data is available, e.g. the average number of {@code acquire()} calls per time
+ * frame. When a timed semaphore is no more needed, its {@code shutdown()} method has to be called.
+ * </p>
  */
 package org.apache.commons.lang3.concurrent;
diff --git a/src/main/java/org/apache/commons/lang3/event/EventUtils.java b/src/main/java/org/apache/commons/lang3/event/EventUtils.java
index 5f18a601e..546c06818 100644
--- a/src/main/java/org/apache/commons/lang3/event/EventUtils.java
+++ b/src/main/java/org/apache/commons/lang3/event/EventUtils.java
@@ -84,7 +84,7 @@ public class EventUtils {
         private final Set<String> eventTypes;
 
         /**
-         * Creates a new instance of {@code EventBindingInvocationHandler}.
+         * Creates a new instance of {@link EventBindingInvocationHandler}.
          *
          * @param target the target object for method invocations
          * @param methodName the name of the method to be invoked
diff --git a/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java b/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java
index 89316cb1b..4de719fc3 100644
--- a/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java
+++ b/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java
@@ -36,7 +36,7 @@ import org.apache.commons.lang3.StringUtils;
 
 /**
  * Provides utilities for manipulating and examining
- * {@code Throwable} objects.
+ * {@link Throwable} objects.
  *
  * @since 1.0
  */
@@ -83,10 +83,10 @@ public class ExceptionUtils {
     }
 
     /**
-     * Introspects the {@code Throwable} to obtain the cause.
+     * Introspects the {@link Throwable} to obtain the cause.
      *
      * <p>The method searches for methods with specific names that return a
-     * {@code Throwable} object. This will pick up most wrapping exceptions,
+     * {@link Throwable} object. This will pick up most wrapping exceptions,
      * including those from JDK 1.4.
      * </p>
      *
@@ -105,7 +105,7 @@ public class ExceptionUtils {
      * <p>If none of the above is found, returns {@code null}.</p>
      *
      * @param throwable  the throwable to introspect for a cause, may be null
-     * @return the cause of the {@code Throwable},
+     * @return the cause of the {@link Throwable},
      *  {@code null} if none found or null throwable input
      * @since 1.0
      * @deprecated This feature will be removed in Lang 4.0, use {@link Throwable#getCause} instead
@@ -116,14 +116,14 @@ public class ExceptionUtils {
     }
 
     /**
-     * Introspects the {@code Throwable} to obtain the cause.
+     * Introspects the {@link Throwable} to obtain the cause.
      *
      * <p>A {@code null} set of method names means use the default set.
      * A {@code null} in the set of method names will be ignored.</p>
      *
      * @param throwable  the throwable to introspect for a cause, may be null
      * @param methodNames  the method names, null treated as default set
-     * @return the cause of the {@code Throwable},
+     * @return the cause of the {@link Throwable},
      *  {@code null} if none found or null throwable input
      * @since 1.0
      * @deprecated This feature will be removed in Lang 4.0, use {@link Throwable#getCause} instead
@@ -156,7 +156,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Gets a {@code Throwable} by method name.
+     * Gets a {@link Throwable} by method name.
      *
      * @param throwable  the exception to examine
      * @param methodName  the name of the method to find and invoke
@@ -215,7 +215,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Introspects the {@code Throwable} to obtain the root cause.
+     * Introspects the {@link Throwable} to obtain the root cause.
      *
      * <p>This method walks through the exception chain to the last element,
      * "root" of the tree, using {@link Throwable#getCause()}, and
@@ -228,7 +228,7 @@ public class ExceptionUtils {
      * loop is returned.</p>
      *
      * @param throwable  the throwable to get the root cause for, may be null
-     * @return the root cause of the {@code Throwable},
+     * @return the root cause of the {@link Throwable},
      *  {@code null} if null throwable input
      */
     public static Throwable getRootCause(final Throwable throwable) {
@@ -255,7 +255,7 @@ public class ExceptionUtils {
 
     /**
      * Gets a compact stack trace for the root cause of the supplied
-     * {@code Throwable}.
+     * {@link Throwable}.
      *
      * <p>The output of this method is consistent across JDK versions.
      * It consists of the root exception followed by each of its wrapping
@@ -271,7 +271,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Gets a compact stack trace for the root cause of the supplied {@code Throwable}.
+     * Gets a compact stack trace for the root cause of the supplied {@link Throwable}.
      *
      * <p>
      * The output of this method is consistent across JDK versions. It consists of the root exception followed by each of
@@ -307,7 +307,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Gets a {@code List} of stack frames - the message
+     * Gets a {@link List} of stack frames - the message
      * is not included. Only the trace of the specified exception is
      * returned, any caused by trace is stripped.
      *
@@ -358,7 +358,7 @@ public class ExceptionUtils {
 
     /**
      * Gets the stack trace associated with the specified
-     * {@code Throwable} object, decomposing it into a list of
+     * {@link Throwable} object, decomposing it into a list of
      * stack frames.
      *
      * <p>The result of this method vary by JDK version as this method
@@ -366,7 +366,7 @@ public class ExceptionUtils {
      * On JDK1.3 and earlier, the cause exception will not be shown
      * unless the specified throwable alters printStackTrace.</p>
      *
-     * @param throwable  the {@code Throwable} to examine, may be null
+     * @param throwable  the {@link Throwable} to examine, may be null
      * @return an array of strings describing each stack frame, never null
      */
     public static String[] getStackFrames(final Throwable throwable) {
@@ -384,7 +384,7 @@ public class ExceptionUtils {
      * On JDK1.3 and earlier, the cause exception will not be shown
      * unless the specified throwable alters printStackTrace.</p>
      *
-     * @param throwable  the {@code Throwable} to be examined, may be null
+     * @param throwable  the {@link Throwable} to be examined, may be null
      * @return the stack trace as generated by the exception's
      * {@code printStackTrace(PrintWriter)} method, or an empty String if {@code null} input
      */
@@ -398,7 +398,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Gets a count of the number of {@code Throwable} objects in the
+     * Gets a count of the number of {@link Throwable} objects in the
      * exception chain.
      *
      * <p>A throwable without cause will return {@code 1}.
@@ -418,7 +418,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Gets the list of {@code Throwable} objects in the
+     * Gets the list of {@link Throwable} objects in the
      * exception chain.
      *
      * <p>A throwable without cause will return a list containing
@@ -466,7 +466,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Gets the list of {@code Throwable} objects in the
+     * Gets the list of {@link Throwable} objects in the
      * exception chain.
      *
      * <p>A throwable without cause will return an array containing
@@ -548,7 +548,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the (zero-based) index of the first {@code Throwable}
+     * Returns the (zero-based) index of the first {@link Throwable}
      * that matches the specified class (exactly) in the exception chain.
      * Subclasses of the specified class do not match - see
      * {@link #indexOfType(Throwable, Class)} for the opposite.
@@ -566,7 +566,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the (zero-based) index of the first {@code Throwable}
+     * Returns the (zero-based) index of the first {@link Throwable}
      * that matches the specified type in the exception chain from
      * a specified index.
      * Subclasses of the specified class do not match - see
@@ -589,7 +589,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the (zero-based) index of the first {@code Throwable}
+     * Returns the (zero-based) index of the first {@link Throwable}
      * that matches the specified class or subclass in the exception chain.
      * Subclasses of the specified class do match - see
      * {@link #indexOfThrowable(Throwable, Class)} for the opposite.
@@ -608,7 +608,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the (zero-based) index of the first {@code Throwable}
+     * Returns the (zero-based) index of the first {@link Throwable}
      * that matches the specified type in the exception chain from
      * a specified index.
      * Subclasses of the specified class do match - see
@@ -863,7 +863,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the first {@code Throwable}
+     * Returns the first {@link Throwable}
      * that matches the specified class (exactly) in the exception chain.
      * Subclasses of the specified class do not match - see
      * {@link #throwableOfType(Throwable, Class)} for the opposite.
@@ -883,7 +883,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the first {@code Throwable}
+     * Returns the first {@link Throwable}
      * that matches the specified type in the exception chain from
      * a specified index.
      * Subclasses of the specified class do not match - see
@@ -908,7 +908,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the throwable of the first {@code Throwable}
+     * Returns the throwable of the first {@link Throwable}
      * that matches the specified class or subclass in the exception chain.
      * Subclasses of the specified class do match - see
      * {@link #throwableOfThrowable(Throwable, Class)} for the opposite.
@@ -928,7 +928,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Returns the first {@code Throwable}
+     * Returns the first {@link Throwable}
      * that matches the specified type in the exception chain from
      * a specified index.
      * Subclasses of the specified class do match - see
@@ -985,7 +985,7 @@ public class ExceptionUtils {
     }
 
     /**
-     * Public constructor allows an instance of {@code ExceptionUtils} to be created, although that is not
+     * Public constructor allows an instance of {@link ExceptionUtils} to be created, although that is not
      * normally necessary.
      */
     public ExceptionUtils() {
diff --git a/src/main/java/org/apache/commons/lang3/exception/package-info.java b/src/main/java/org/apache/commons/lang3/exception/package-info.java
index 599201066..268002452 100644
--- a/src/main/java/org/apache/commons/lang3/exception/package-info.java
+++ b/src/main/java/org/apache/commons/lang3/exception/package-info.java
@@ -18,7 +18,7 @@
  * <p>Provides functionality for Exceptions.</p>
  * <p>Contains the concept of an exception with context i.e. such an exception will contain a map with keys and values.
  * This provides an easy way to pass valuable state information at exception time in useful form to a calling process.</p>
- * <p>Lastly, {@link org.apache.commons.lang3.exception.ExceptionUtils} also contains {@code Throwable} manipulation
+ * <p>Lastly, {@link org.apache.commons.lang3.exception.ExceptionUtils} also contains {@link Throwable} manipulation
  * and examination routines.</p>
  *
  * @since 1.0
diff --git a/src/main/java/org/apache/commons/lang3/function/BooleanConsumer.java b/src/main/java/org/apache/commons/lang3/function/BooleanConsumer.java
index ad4421ebf..9a6147241 100644
--- a/src/main/java/org/apache/commons/lang3/function/BooleanConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/BooleanConsumer.java
@@ -49,12 +49,12 @@ public interface BooleanConsumer {
     void accept(boolean value);
 
     /**
-     * Returns a composed {@code BooleanConsumer} that performs, in sequence, this operation followed by the {@code after}
+     * Returns a composed {@link BooleanConsumer} that performs, in sequence, this operation followed by the {@code after}
      * operation. If performing either operation throws an exception, it is relayed to the caller of the composed operation.
      * If performing this operation throws an exception, the {@code after} operation will not be performed.
      *
      * @param after the operation to perform after this operation
-     * @return a composed {@code BooleanConsumer} that performs in sequence this operation followed by the {@code after}
+     * @return a composed {@link BooleanConsumer} that performs in sequence this operation followed by the {@code after}
      *         operation
      * @throws NullPointerException if {@code after} is null
      */
diff --git a/src/main/java/org/apache/commons/lang3/function/Failable.java b/src/main/java/org/apache/commons/lang3/function/Failable.java
index 9bf62eef2..d94757a47 100644
--- a/src/main/java/org/apache/commons/lang3/function/Failable.java
+++ b/src/main/java/org/apache/commons/lang3/function/Failable.java
@@ -178,8 +178,8 @@ public class Failable {
      *
      * @param <T> the type of the first argument of the consumers
      * @param <U> the type of the second argument of the consumers
-     * @param consumer a failable {@code BiConsumer}
-     * @return a standard {@code BiConsumer}
+     * @param consumer a failable {@link BiConsumer}
+     * @return a standard {@link BiConsumer}
      */
     public static <T, U> BiConsumer<T, U> asBiConsumer(final FailableBiConsumer<T, U, ?> consumer) {
         return (input1, input2) -> accept(consumer, input1, input2);
@@ -191,8 +191,8 @@ public class Failable {
      * @param <T> the type of the first argument of the input of the functions
      * @param <U> the type of the second argument of the input of the functions
      * @param <R> the type of the output of the functions
-     * @param function a {@code FailableBiFunction}
-     * @return a standard {@code BiFunction}
+     * @param function a {@link FailableBiFunction}
+     * @return a standard {@link BiFunction}
      */
     public static <T, U, R> BiFunction<T, U, R> asBiFunction(final FailableBiFunction<T, U, R, ?> function) {
         return (input1, input2) -> apply(function, input1, input2);
@@ -203,8 +203,8 @@ public class Failable {
      *
      * @param <T> the type of the first argument used by the predicates
      * @param <U> the type of the second argument used by the predicates
-     * @param predicate a {@code FailableBiPredicate}
-     * @return a standard {@code BiPredicate}
+     * @param predicate a {@link FailableBiPredicate}
+     * @return a standard {@link BiPredicate}
      */
     public static <T, U> BiPredicate<T, U> asBiPredicate(final FailableBiPredicate<T, U, ?> predicate) {
         return (input1, input2) -> test(predicate, input1, input2);
@@ -214,8 +214,8 @@ public class Failable {
      * Converts the given {@link FailableCallable} into a standard {@link Callable}.
      *
      * @param <V> the type used by the callables
-     * @param callable a {@code FailableCallable}
-     * @return a standard {@code Callable}
+     * @param callable a {@link FailableCallable}
+     * @return a standard {@link Callable}
      */
     public static <V> Callable<V> asCallable(final FailableCallable<V, ?> callable) {
         return () -> call(callable);
@@ -225,8 +225,8 @@ public class Failable {
      * Converts the given {@link FailableConsumer} into a standard {@link Consumer}.
      *
      * @param <T> the type used by the consumers
-     * @param consumer a {@code FailableConsumer}
-     * @return a standard {@code Consumer}
+     * @param consumer a {@link FailableConsumer}
+     * @return a standard {@link Consumer}
      */
     public static <T> Consumer<T> asConsumer(final FailableConsumer<T, ?> consumer) {
         return input -> accept(consumer, input);
@@ -238,7 +238,7 @@ public class Failable {
      * @param <T> the type of the input of the functions
      * @param <R> the type of the output of the functions
      * @param function a {code FailableFunction}
-     * @return a standard {@code Function}
+     * @return a standard {@link Function}
      */
     public static <T, R> Function<T, R> asFunction(final FailableFunction<T, R, ?> function) {
         return input -> apply(function, input);
@@ -248,8 +248,8 @@ public class Failable {
      * Converts the given {@link FailablePredicate} into a standard {@link Predicate}.
      *
      * @param <T> the type used by the predicates
-     * @param predicate a {@code FailablePredicate}
-     * @return a standard {@code Predicate}
+     * @param predicate a {@link FailablePredicate}
+     * @return a standard {@link Predicate}
      */
     public static <T> Predicate<T> asPredicate(final FailablePredicate<T, ?> predicate) {
         return input -> test(predicate, input);
@@ -258,8 +258,8 @@ public class Failable {
     /**
      * Converts the given {@link FailableRunnable} into a standard {@link Runnable}.
      *
-     * @param runnable a {@code FailableRunnable}
-     * @return a standard {@code Runnable}
+     * @param runnable a {@link FailableRunnable}
+     * @return a standard {@link Runnable}
      */
     public static Runnable asRunnable(final FailableRunnable<?> runnable) {
         return () -> run(runnable);
@@ -269,8 +269,8 @@ public class Failable {
      * Converts the given {@link FailableSupplier} into a standard {@link Supplier}.
      *
      * @param <T> the type supplied by the suppliers
-     * @param supplier a {@code FailableSupplier}
-     * @return a standard {@code Supplier}
+     * @param supplier a {@link FailableSupplier}
+     * @return a standard {@link Supplier}
      */
     public static <T> Supplier<T> asSupplier(final FailableSupplier<T, ?> supplier) {
         return () -> get(supplier);
@@ -382,8 +382,8 @@ public class Failable {
     /**
      * <p>
      * Rethrows a {@link Throwable} as an unchecked exception. If the argument is already unchecked, namely a
-     * {@code RuntimeException} or {@code Error} then the argument will be rethrown without modification. If the
-     * exception is {@code IOException} then it will be wrapped into a {@code UncheckedIOException}. In every other
+     * {@link RuntimeException} or {@link Error} then the argument will be rethrown without modification. If the
+     * exception is {@link IOException} then it will be wrapped into a {@link UncheckedIOException}. In every other
      * cases the exception will be wrapped into a {@code
      * UndeclaredThrowableException}
      * </p>
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableBiConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableBiConsumer.java
index 34dce6445..823a6496d 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableBiConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableBiConsumer.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.BiConsumer;
 
 /**
- * A functional interface like {@link BiConsumer} that declares a {@code Throwable}.
+ * A functional interface like {@link BiConsumer} that declares a {@link Throwable}.
  *
  * @param <T> Consumed type 1.
  * @param <U> Consumed type 2.
@@ -57,10 +57,10 @@ public interface FailableBiConsumer<T, U, E extends Throwable> {
     void accept(T t, U u) throws E;
 
     /**
-     * Returns a composed {@code FailableBiConsumer} like {@link BiConsumer#andThen(BiConsumer)}.
+     * Returns a composed {@link FailableBiConsumer} like {@link BiConsumer#andThen(BiConsumer)}.
      *
      * @param after the operation to perform after this one.
-     * @return a composed {@code FailableBiConsumer} like {@link BiConsumer#andThen(BiConsumer)}.
+     * @return a composed {@link FailableBiConsumer} like {@link BiConsumer#andThen(BiConsumer)}.
      * @throws NullPointerException when {@code after} is null.
      */
     default FailableBiConsumer<T, U, E> andThen(final FailableBiConsumer<? super T, ? super U, E> after) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableBiFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableBiFunction.java
index 79593b2a5..cabcd1921 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableBiFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableBiFunction.java
@@ -22,7 +22,7 @@ import java.util.function.BiFunction;
 import java.util.function.Function;
 
 /**
- * A functional interface like {@link BiFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link BiFunction} that declares a {@link Throwable}.
  *
  * @param <T> Input type 1.
  * @param <U> Input type 2.
@@ -51,11 +51,11 @@ public interface FailableBiFunction<T, U, R, E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableBiFunction} that like {@link BiFunction#andThen(Function)}.
+     * Returns a composed {@link FailableBiFunction} that like {@link BiFunction#andThen(Function)}.
      *
      * @param <V> the output type of the {@code after} function, and of the composed function.
      * @param after the operation to perform after this one.
-     * @return a composed {@code FailableBiFunction} that like {@link BiFunction#andThen(Function)}.
+     * @return a composed {@link FailableBiFunction} that like {@link BiFunction#andThen(Function)}.
      * @throws NullPointerException when {@code after} is null.
      */
     default <V> FailableBiFunction<T, U, V, E> andThen(final FailableFunction<? super R, ? extends V, E> after) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java b/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java
index 58f5cfb96..9fff9180e 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.BiPredicate;
 
 /**
- * A functional interface like {@link BiPredicate} that declares a {@code Throwable}.
+ * A functional interface like {@link BiPredicate} that declares a {@link Throwable}.
  *
  * @param <T> Predicate type 1.
  * @param <U> Predicate type 2.
@@ -64,10 +64,10 @@ public interface FailableBiPredicate<T, U, E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
+     * Returns a composed {@link FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
      *
      * @param other a predicate that will be logically-ANDed with this predicate.
-     * @return a composed {@code FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
+     * @return a composed {@link FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableBiPredicate<T, U, E> and(final FailableBiPredicate<? super T, ? super U, E> other) {
@@ -85,10 +85,10 @@ public interface FailableBiPredicate<T, U, E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
+     * Returns a composed {@link FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
      *
      * @param other a predicate that will be logically-ORed with this predicate.
-     * @return a composed {@code FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
+     * @return a composed {@link FailableBiPredicate} like {@link BiPredicate#and(BiPredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableBiPredicate<T, U, E> or(final FailableBiPredicate<? super T, ? super U, E> other) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableBooleanSupplier.java b/src/main/java/org/apache/commons/lang3/function/FailableBooleanSupplier.java
index a6c1d09d4..1e5dce262 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableBooleanSupplier.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableBooleanSupplier.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.BooleanSupplier;
 
 /**
- * A functional interface like {@link BooleanSupplier} that declares a {@code Throwable}.
+ * A functional interface like {@link BooleanSupplier} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableCallable.java b/src/main/java/org/apache/commons/lang3/function/FailableCallable.java
index 3b5c6ca0f..0ac99a0ed 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableCallable.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableCallable.java
@@ -18,7 +18,7 @@
 package org.apache.commons.lang3.function;
 
 /**
- * A functional interface like {@link java.util.concurrent.Callable} that declares a {@code Throwable}.
+ * A functional interface like {@link java.util.concurrent.Callable} that declares a {@link Throwable}.
  *
  * @param <R> Return type.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableConsumer.java
index d14f25ab0..9565a8f15 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableConsumer.java
@@ -22,7 +22,7 @@ import java.util.function.Consumer;
 import java.util.function.Function;
 
 /**
- * A functional interface like {@link Consumer} that declares a {@code Throwable}.
+ * A functional interface like {@link Consumer} that declares a {@link Throwable}.
  *
  * <p>
  * This is a functional interface whose functional method is {@link #accept(Object)}.
@@ -59,10 +59,10 @@ public interface FailableConsumer<T, E extends Throwable> {
     void accept(T object) throws E;
 
     /**
-     * Returns a composed {@code Consumer} like {@link Consumer#andThen(Consumer)}.
+     * Returns a composed {@link Consumer} like {@link Consumer#andThen(Consumer)}.
      *
      * @param after the operation to perform after this operation
-     * @return a composed {@code Consumer} like {@link Consumer#andThen(Consumer)}.
+     * @return a composed {@link Consumer} like {@link Consumer#andThen(Consumer)}.
      * @throws NullPointerException when {@code after} is null
      */
     default FailableConsumer<T, E> andThen(final FailableConsumer<? super T, E> after) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoubleBinaryOperator.java b/src/main/java/org/apache/commons/lang3/function/FailableDoubleBinaryOperator.java
index 23b1f51bf..0f23e4324 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoubleBinaryOperator.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoubleBinaryOperator.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.DoubleBinaryOperator;
 
 /**
- * A functional interface like {@link DoubleBinaryOperator} that declares a {@code Throwable}.
+ * A functional interface like {@link DoubleBinaryOperator} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoubleConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableDoubleConsumer.java
index fe014906c..88229ff60 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoubleConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoubleConsumer.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.DoubleConsumer;
 
 /**
- * A functional interface like {@link DoubleConsumer} that declares a {@code Throwable}.
+ * A functional interface like {@link DoubleConsumer} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -52,10 +52,10 @@ public interface FailableDoubleConsumer<E extends Throwable> {
     void accept(double value) throws E;
 
     /**
-     * Returns a composed {@code FailableDoubleConsumer} like {@link DoubleConsumer#andThen(DoubleConsumer)}.
+     * Returns a composed {@link FailableDoubleConsumer} like {@link DoubleConsumer#andThen(DoubleConsumer)}.
      *
      * @param after the operation to perform after this one.
-     * @return a composed {@code FailableDoubleConsumer} like {@link DoubleConsumer#andThen(DoubleConsumer)}.
+     * @return a composed {@link FailableDoubleConsumer} like {@link DoubleConsumer#andThen(DoubleConsumer)}.
      * @throws NullPointerException when {@code after} is null.
      */
     default FailableDoubleConsumer<E> andThen(final FailableDoubleConsumer<E> after) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoubleFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableDoubleFunction.java
index 64eaf8429..cdca5accd 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoubleFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoubleFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.DoubleFunction;
 
 /**
- * A functional interface like {@link DoubleFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link DoubleFunction} that declares a {@link Throwable}.
  *
  * @param <R> Return type.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java b/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java
index 3314959da..e54f501a7 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.DoublePredicate;
 
 /**
- * A functional interface like {@link DoublePredicate} that declares a {@code Throwable}.
+ * A functional interface like {@link DoublePredicate} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -58,10 +58,10 @@ public interface FailableDoublePredicate<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
+     * Returns a composed {@link FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
      *
      * @param other a predicate that will be logically-ANDed with this predicate.
-     * @return a composed {@code FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
+     * @return a composed {@link FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableDoublePredicate<E> and(final FailableDoublePredicate<E> other) {
@@ -79,10 +79,10 @@ public interface FailableDoublePredicate<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
+     * Returns a composed {@link FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
      *
      * @param other a predicate that will be logically-ORed with this predicate.
-     * @return a composed {@code FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
+     * @return a composed {@link FailableDoublePredicate} like {@link DoublePredicate#and(DoublePredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableDoublePredicate<E> or(final FailableDoublePredicate<E> other) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoubleSupplier.java b/src/main/java/org/apache/commons/lang3/function/FailableDoubleSupplier.java
index 07539f0cf..1f923d9bb 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoubleSupplier.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoubleSupplier.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.DoubleSupplier;
 
 /**
- * A functional interface like {@link DoubleSupplier} that declares a {@code Throwable}.
+ * A functional interface like {@link DoubleSupplier} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoubleToIntFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableDoubleToIntFunction.java
index 3b5448bbb..e8a247c62 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoubleToIntFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoubleToIntFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.DoubleToIntFunction;
 
 /**
- * A functional interface like {@link DoubleToIntFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link DoubleToIntFunction} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoubleToLongFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableDoubleToLongFunction.java
index 621519229..eeb3f3972 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoubleToLongFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoubleToLongFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.DoubleToLongFunction;
 
 /**
- * A functional interface like {@link DoubleToLongFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link DoubleToLongFunction} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableDoubleUnaryOperator.java b/src/main/java/org/apache/commons/lang3/function/FailableDoubleUnaryOperator.java
index 65dee0daf..91f98c6c7 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableDoubleUnaryOperator.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableDoubleUnaryOperator.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.DoubleUnaryOperator;
 
 /**
- * A functional interface like {@link DoubleUnaryOperator} that declares a {@code Throwable}.
+ * A functional interface like {@link DoubleUnaryOperator} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -53,11 +53,11 @@ public interface FailableDoubleUnaryOperator<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableDoubleUnaryOperator} like
+     * Returns a composed {@link FailableDoubleUnaryOperator} like
      * {@link DoubleUnaryOperator#andThen(DoubleUnaryOperator)}.
      *
      * @param after the operator to apply after this one.
-     * @return a composed {@code FailableDoubleUnaryOperator} like
+     * @return a composed {@link FailableDoubleUnaryOperator} like
      *         {@link DoubleUnaryOperator#andThen(DoubleUnaryOperator)}.
      * @throws NullPointerException if after is null.
      * @see #compose(FailableDoubleUnaryOperator)
@@ -77,11 +77,11 @@ public interface FailableDoubleUnaryOperator<E extends Throwable> {
     double applyAsDouble(double operand) throws E;
 
     /**
-     * Returns a composed {@code FailableDoubleUnaryOperator} like
+     * Returns a composed {@link FailableDoubleUnaryOperator} like
      * {@link DoubleUnaryOperator#compose(DoubleUnaryOperator)}.
      *
      * @param before the operator to apply before this one.
-     * @return a composed {@code FailableDoubleUnaryOperator} like
+     * @return a composed {@link FailableDoubleUnaryOperator} like
      *         {@link DoubleUnaryOperator#compose(DoubleUnaryOperator)}.
      * @throws NullPointerException if before is null.
      * @see #andThen(FailableDoubleUnaryOperator)
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableFunction.java
index 2146bf1c2..5eb586acc 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableFunction.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.Function;
 
 /**
- * A functional interface like {@link Function} that declares a {@code Throwable}.
+ * A functional interface like {@link Function} that declares a {@link Throwable}.
  *
  * @param <T> Input type 1.
  * @param <R> Return type.
@@ -59,10 +59,10 @@ public interface FailableFunction<T, R, E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableFunction} like {@link Function#andThen(Function)}.
+     * Returns a composed {@link FailableFunction} like {@link Function#andThen(Function)}.
      *
      * @param <V> the output type of the {@code after} function, and of the composed function.
-     * @return a composed {@code FailableFunction} like {@link Function#andThen(Function)}.
+     * @return a composed {@link FailableFunction} like {@link Function#andThen(Function)}.
      * @param after the operation to perform after this one.
      * @throws NullPointerException when {@code after} is null.
      */
@@ -81,11 +81,11 @@ public interface FailableFunction<T, R, E extends Throwable> {
     R apply(T input) throws E;
 
     /**
-     * Returns a composed {@code FailableFunction} like {@link Function#compose(Function)}.
+     * Returns a composed {@link FailableFunction} like {@link Function#compose(Function)}.
      *
      * @param <V> the input type to the {@code before} function, and to the composed function.
      * @param before the operator to apply before this one.
-     * @return a a composed {@code FailableFunction} like {@link Function#compose(Function)}.
+     * @return a a composed {@link FailableFunction} like {@link Function#compose(Function)}.
      * @throws NullPointerException if before is null.
      * @see #andThen(FailableFunction)
      */
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntBinaryOperator.java b/src/main/java/org/apache/commons/lang3/function/FailableIntBinaryOperator.java
index 65753d9a8..8f0015a50 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntBinaryOperator.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntBinaryOperator.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.IntBinaryOperator;
 
 /**
- * A functional interface like {@link IntBinaryOperator} that declares a {@code Throwable}.
+ * A functional interface like {@link IntBinaryOperator} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableIntConsumer.java
index 291c6c2d4..a9330e1f2 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntConsumer.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.IntConsumer;
 
 /**
- * A functional interface like {@link IntConsumer} that declares a {@code Throwable}.
+ * A functional interface like {@link IntConsumer} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -52,10 +52,10 @@ public interface FailableIntConsumer<E extends Throwable> {
     void accept(int value) throws E;
 
     /**
-     * Returns a composed {@code FailableIntConsumer} like {@link IntConsumer#andThen(IntConsumer)}.
+     * Returns a composed {@link FailableIntConsumer} like {@link IntConsumer#andThen(IntConsumer)}.
      *
      * @param after the operation to perform after this one.
-     * @return a composed {@code FailableLongConsumer} like {@link IntConsumer#andThen(IntConsumer)}.
+     * @return a composed {@link FailableLongConsumer} like {@link IntConsumer#andThen(IntConsumer)}.
      * @throws NullPointerException if {@code after} is null
      */
     default FailableIntConsumer<E> andThen(final FailableIntConsumer<E> after) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableIntFunction.java
index 635193097..7f173defe 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.IntFunction;
 
 /**
- * A functional interface like {@link IntFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link IntFunction} that declares a {@link Throwable}.
  *
  * @param <R> Return type.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java b/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java
index 3f128e583..1438e60f8 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.IntPredicate;
 
 /**
- * A functional interface like {@link IntPredicate} that declares a {@code Throwable}.
+ * A functional interface like {@link IntPredicate} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -58,10 +58,10 @@ public interface FailableIntPredicate<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
+     * Returns a composed {@link FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
      *
      * @param other a predicate that will be logically-ANDed with this predicate.
-     * @return a composed {@code FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
+     * @return a composed {@link FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableIntPredicate<E> and(final FailableIntPredicate<E> other) {
@@ -79,10 +79,10 @@ public interface FailableIntPredicate<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
+     * Returns a composed {@link FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
      *
      * @param other a predicate that will be logically-ORed with this predicate.
-     * @return a composed {@code FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
+     * @return a composed {@link FailableIntPredicate} like {@link IntPredicate#and(IntPredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableIntPredicate<E> or(final FailableIntPredicate<E> other) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntSupplier.java b/src/main/java/org/apache/commons/lang3/function/FailableIntSupplier.java
index ac60e0f1b..aa8ce8a19 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntSupplier.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntSupplier.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.IntSupplier;
 
 /**
- * A functional interface like {@link IntSupplier} that declares a {@code Throwable}.
+ * A functional interface like {@link IntSupplier} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntToDoubleFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableIntToDoubleFunction.java
index 79db39b67..6d96cd700 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntToDoubleFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntToDoubleFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.IntToDoubleFunction;
 
 /**
- * A functional interface like {@link IntToDoubleFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link IntToDoubleFunction} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntToLongFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableIntToLongFunction.java
index 8f6227ed5..4693fb56a 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntToLongFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntToLongFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.IntToLongFunction;
 
 /**
- * A functional interface like {@link IntToLongFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link IntToLongFunction} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableIntUnaryOperator.java b/src/main/java/org/apache/commons/lang3/function/FailableIntUnaryOperator.java
index f55995785..a0d3cedc4 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntUnaryOperator.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntUnaryOperator.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.IntUnaryOperator;
 
 /**
- * A functional interface like {@link IntUnaryOperator} that declares a {@code Throwable}.
+ * A functional interface like {@link IntUnaryOperator} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -53,10 +53,10 @@ public interface FailableIntUnaryOperator<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableDoubleUnaryOperator} like {@link IntUnaryOperator#andThen(IntUnaryOperator)}.
+     * Returns a composed {@link FailableDoubleUnaryOperator} like {@link IntUnaryOperator#andThen(IntUnaryOperator)}.
      *
      * @param after the operator to apply after this one.
-     * @return a composed {@code FailableIntUnaryOperator} like {@link IntUnaryOperator#andThen(IntUnaryOperator)}.
+     * @return a composed {@link FailableIntUnaryOperator} like {@link IntUnaryOperator#andThen(IntUnaryOperator)}.
      * @throws NullPointerException if after is null.
      * @see #compose(FailableIntUnaryOperator)
      */
@@ -75,10 +75,10 @@ public interface FailableIntUnaryOperator<E extends Throwable> {
     int applyAsInt(int operand) throws E;
 
     /**
-     * Returns a composed {@code FailableIntUnaryOperator} like {@link IntUnaryOperator#compose(IntUnaryOperator)}.
+     * Returns a composed {@link FailableIntUnaryOperator} like {@link IntUnaryOperator#compose(IntUnaryOperator)}.
      *
      * @param before the operator to apply before this one.
-     * @return a composed {@code FailableIntUnaryOperator} like {@link IntUnaryOperator#compose(IntUnaryOperator)}.
+     * @return a composed {@link FailableIntUnaryOperator} like {@link IntUnaryOperator#compose(IntUnaryOperator)}.
      * @throws NullPointerException if before is null.
      * @see #andThen(FailableIntUnaryOperator)
      */
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongBinaryOperator.java b/src/main/java/org/apache/commons/lang3/function/FailableLongBinaryOperator.java
index 4d594ff0b..76b121429 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongBinaryOperator.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongBinaryOperator.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.LongBinaryOperator;
 
 /**
- * A functional interface like {@link LongBinaryOperator} that declares a {@code Throwable}.
+ * A functional interface like {@link LongBinaryOperator} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableLongConsumer.java
index abf1c897e..946b4acf1 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongConsumer.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.LongConsumer;
 
 /**
- * A functional interface like {@link LongConsumer} that declares a {@code Throwable}.
+ * A functional interface like {@link LongConsumer} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -52,10 +52,10 @@ public interface FailableLongConsumer<E extends Throwable> {
     void accept(long object) throws E;
 
     /**
-     * Returns a composed {@code FailableLongConsumer} like {@link LongConsumer#andThen(LongConsumer)}.
+     * Returns a composed {@link FailableLongConsumer} like {@link LongConsumer#andThen(LongConsumer)}.
      *
      * @param after the operation to perform after this one.
-     * @return a composed {@code FailableLongConsumer} like {@link LongConsumer#andThen(LongConsumer)}.
+     * @return a composed {@link FailableLongConsumer} like {@link LongConsumer#andThen(LongConsumer)}.
      * @throws NullPointerException if {@code after} is null
      */
     default FailableLongConsumer<E> andThen(final FailableLongConsumer<E> after) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableLongFunction.java
index 75ad80e18..7ba5a12d6 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.LongFunction;
 
 /**
- * A functional interface like {@link LongFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link LongFunction} that declares a {@link Throwable}.
  *
  * @param <R> Return type.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java b/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java
index 8e6d9f862..426d42891 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.LongPredicate;
 
 /**
- * A functional interface like {@link LongPredicate} that declares a {@code Throwable}.
+ * A functional interface like {@link LongPredicate} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -58,10 +58,10 @@ public interface FailableLongPredicate<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
+     * Returns a composed {@link FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
      *
      * @param other a predicate that will be logically-ANDed with this predicate.
-     * @return a composed {@code FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
+     * @return a composed {@link FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableLongPredicate<E> and(final FailableLongPredicate<E> other) {
@@ -79,10 +79,10 @@ public interface FailableLongPredicate<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
+     * Returns a composed {@link FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
      *
      * @param other a predicate that will be logically-ORed with this predicate.
-     * @return a composed {@code FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
+     * @return a composed {@link FailableLongPredicate} like {@link LongPredicate#and(LongPredicate)}.
      * @throws NullPointerException if other is null
      */
     default FailableLongPredicate<E> or(final FailableLongPredicate<E> other) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongSupplier.java b/src/main/java/org/apache/commons/lang3/function/FailableLongSupplier.java
index ddf90128a..1b6ee197f 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongSupplier.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongSupplier.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.LongSupplier;
 
 /**
- * A functional interface like {@link LongSupplier} that declares a {@code Throwable}.
+ * A functional interface like {@link LongSupplier} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongToDoubleFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableLongToDoubleFunction.java
index 5991984a8..e0105bb72 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongToDoubleFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongToDoubleFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.LongToDoubleFunction;
 
 /**
- * A functional interface like {@link LongToDoubleFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link LongToDoubleFunction} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongToIntFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableLongToIntFunction.java
index c4d9fda4c..e9a7a9efc 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongToIntFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongToIntFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.LongToIntFunction;
 
 /**
- * A functional interface like {@link LongToIntFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link LongToIntFunction} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableLongUnaryOperator.java b/src/main/java/org/apache/commons/lang3/function/FailableLongUnaryOperator.java
index cd6c089f0..b58f79ddf 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongUnaryOperator.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongUnaryOperator.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.LongUnaryOperator;
 
 /**
- * A functional interface like {@link LongUnaryOperator} that declares a {@code Throwable}.
+ * A functional interface like {@link LongUnaryOperator} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.11
@@ -53,10 +53,10 @@ public interface FailableLongUnaryOperator<E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailableDoubleUnaryOperator} like {@link LongUnaryOperator#andThen(LongUnaryOperator)}.
+     * Returns a composed {@link FailableDoubleUnaryOperator} like {@link LongUnaryOperator#andThen(LongUnaryOperator)}.
      *
      * @param after the operator to apply after this one.
-     * @return a composed {@code FailableLongUnaryOperator} like {@link LongUnaryOperator#andThen(LongUnaryOperator)}.
+     * @return a composed {@link FailableLongUnaryOperator} like {@link LongUnaryOperator#andThen(LongUnaryOperator)}.
      * @throws NullPointerException if after is null.
      * @see #compose(FailableLongUnaryOperator)
      */
@@ -75,10 +75,10 @@ public interface FailableLongUnaryOperator<E extends Throwable> {
     long applyAsLong(long operand) throws E;
 
     /**
-     * Returns a composed {@code FailableLongUnaryOperator} like {@link LongUnaryOperator#compose(LongUnaryOperator)}.
+     * Returns a composed {@link FailableLongUnaryOperator} like {@link LongUnaryOperator#compose(LongUnaryOperator)}.
      *
      * @param before the operator to apply before this one.
-     * @return a composed {@code FailableLongUnaryOperator} like {@link LongUnaryOperator#compose(LongUnaryOperator)}.
+     * @return a composed {@link FailableLongUnaryOperator} like {@link LongUnaryOperator#compose(LongUnaryOperator)}.
      * @throws NullPointerException if before is null.
      * @see #andThen(FailableLongUnaryOperator)
      */
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableObjDoubleConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableObjDoubleConsumer.java
index e0114a44f..1c986b91f 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableObjDoubleConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableObjDoubleConsumer.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ObjDoubleConsumer;
 
 /**
- * A functional interface like {@link ObjDoubleConsumer} that declares a {@code Throwable}.
+ * A functional interface like {@link ObjDoubleConsumer} that declares a {@link Throwable}.
  *
  * @param <T> the type of the object argument to the operation.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableObjIntConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableObjIntConsumer.java
index bc36483ff..aa8c02cc1 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableObjIntConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableObjIntConsumer.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ObjIntConsumer;
 
 /**
- * A functional interface like {@link ObjIntConsumer} that declares a {@code Throwable}.
+ * A functional interface like {@link ObjIntConsumer} that declares a {@link Throwable}.
  *
  * @param <T> the type of the object argument to the operation.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableObjLongConsumer.java b/src/main/java/org/apache/commons/lang3/function/FailableObjLongConsumer.java
index 472c82f62..b6e5a3552 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableObjLongConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableObjLongConsumer.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ObjLongConsumer;
 
 /**
- * A functional interface like {@link ObjLongConsumer} that declares a {@code Throwable}.
+ * A functional interface like {@link ObjLongConsumer} that declares a {@link Throwable}.
  *
  * @param <T> the type of the object argument to the operation.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java b/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java
index bed40bdd6..bf4a5e370 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.function.Predicate;
 
 /**
- * A functional interface like {@link Predicate} that declares a {@code Throwable}.
+ * A functional interface like {@link Predicate} that declares a {@link Throwable}.
  *
  * @param <T> Predicate type.
  * @param <E> The kind of thrown exception or error.
@@ -61,10 +61,10 @@ public interface FailablePredicate<T, E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailablePredicate} like {@link Predicate#and(Predicate)}.
+     * Returns a composed {@link FailablePredicate} like {@link Predicate#and(Predicate)}.
      *
      * @param other a predicate that will be logically-ANDed with this predicate.
-     * @return a composed {@code FailablePredicate} like {@link Predicate#and(Predicate)}.
+     * @return a composed {@link FailablePredicate} like {@link Predicate#and(Predicate)}.
      * @throws NullPointerException if other is null
      */
     default FailablePredicate<T, E> and(final FailablePredicate<? super T, E> other) {
@@ -82,10 +82,10 @@ public interface FailablePredicate<T, E extends Throwable> {
     }
 
     /**
-     * Returns a composed {@code FailablePredicate} like {@link Predicate#and(Predicate)}.
+     * Returns a composed {@link FailablePredicate} like {@link Predicate#and(Predicate)}.
      *
      * @param other a predicate that will be logically-ORed with this predicate.
-     * @return a composed {@code FailablePredicate} like {@link Predicate#and(Predicate)}.
+     * @return a composed {@link FailablePredicate} like {@link Predicate#and(Predicate)}.
      * @throws NullPointerException if other is null
      */
     default FailablePredicate<T, E> or(final FailablePredicate<? super T, E> other) {
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableShortSupplier.java b/src/main/java/org/apache/commons/lang3/function/FailableShortSupplier.java
index cf3b72da6..325e08705 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableShortSupplier.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableShortSupplier.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.IntSupplier;
 
 /**
- * A functional interface like {@link IntSupplier} but for {@code short} that declares a {@code Throwable}.
+ * A functional interface like {@link IntSupplier} but for {@code short} that declares a {@link Throwable}.
  *
  * @param <E> The kind of thrown exception or error.
  * @since 3.12.0
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableSupplier.java b/src/main/java/org/apache/commons/lang3/function/FailableSupplier.java
index 521180afb..6f80af546 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableSupplier.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableSupplier.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.Supplier;
 
 /**
- * A functional interface like {@link Supplier} that declares a {@code Throwable}.
+ * A functional interface like {@link Supplier} that declares a {@link Throwable}.
  *
  * @param <R> Return type.
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableToDoubleBiFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableToDoubleBiFunction.java
index b3282f749..aea48e716 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableToDoubleBiFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableToDoubleBiFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ToDoubleBiFunction;
 
 /**
- * A functional interface like {@link ToDoubleBiFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link ToDoubleBiFunction} that declares a {@link Throwable}.
  *
  * @param <T> the type of the first argument to the function
  * @param <U> the type of the second argument to the function
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableToDoubleFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableToDoubleFunction.java
index e295fe49d..b65591ca2 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableToDoubleFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableToDoubleFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ToDoubleFunction;
 
 /**
- * A functional interface like {@link ToDoubleFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link ToDoubleFunction} that declares a {@link Throwable}.
  *
  * @param <T> the type of the argument to the function
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableToIntBiFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableToIntBiFunction.java
index fe5e55263..67617134f 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableToIntBiFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableToIntBiFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ToIntBiFunction;
 
 /**
- * A functional interface like {@link ToIntBiFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link ToIntBiFunction} that declares a {@link Throwable}.
  *
  * @param <T> the type of the first argument to the function
  * @param <U> the type of the second argument to the function
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableToIntFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableToIntFunction.java
index 84d7513f8..711115754 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableToIntFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableToIntFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ToIntFunction;
 
 /**
- * A functional interface like {@link ToIntFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link ToIntFunction} that declares a {@link Throwable}.
  *
  * @param <T> the type of the argument to the function
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableToLongBiFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableToLongBiFunction.java
index fe8f899a5..3c0d5f7ed 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableToLongBiFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableToLongBiFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ToLongBiFunction;
 
 /**
- * A functional interface like {@link ToLongBiFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link ToLongBiFunction} that declares a {@link Throwable}.
  *
  * @param <T> the type of the first argument to the function
  * @param <U> the type of the second argument to the function
diff --git a/src/main/java/org/apache/commons/lang3/function/FailableToLongFunction.java b/src/main/java/org/apache/commons/lang3/function/FailableToLongFunction.java
index 2d87b3c6c..f093f7467 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableToLongFunction.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableToLongFunction.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.function;
 import java.util.function.ToLongFunction;
 
 /**
- * A functional interface like {@link ToLongFunction} that declares a {@code Throwable}.
+ * A functional interface like {@link ToLongFunction} that declares a {@link Throwable}.
  *
  * @param <T> the type of the first argument to the function
  * @param <E> The kind of thrown exception or error.
diff --git a/src/main/java/org/apache/commons/lang3/function/TriConsumer.java b/src/main/java/org/apache/commons/lang3/function/TriConsumer.java
index 6bd7c815e..d0ba9b466 100644
--- a/src/main/java/org/apache/commons/lang3/function/TriConsumer.java
+++ b/src/main/java/org/apache/commons/lang3/function/TriConsumer.java
@@ -22,7 +22,7 @@ import java.util.function.Consumer;
 
 /**
  * Represents an operation that accepts three input arguments and returns no result. This is the three-arity
- * specialization of {@link Consumer}. Unlike most other functional interfaces, {@code TriConsumer} is expected to
+ * specialization of {@link Consumer}. Unlike most other functional interfaces, {@link TriConsumer} is expected to
  * operate via side-effects.
  *
  * <p>
@@ -50,12 +50,12 @@ public interface TriConsumer<T, U, V> {
     void accept(T k, U v, V s);
 
     /**
-     * Returns a composed {@code TriConsumer} that performs, in sequence, this operation followed by the {@code after}
+     * Returns a composed {@link TriConsumer} that performs, in sequence, this operation followed by the {@code after}
      * operation. If performing either operation throws an exception, it is relayed to the caller of the composed
      * operation. If performing this operation throws an exception, the {@code after} operation will not be performed.
      *
      * @param after the operation to perform after this operation.
-     * @return a composed {@code TriConsumer} that performs in sequence this operation followed by the {@code after}
+     * @return a composed {@link TriConsumer} that performs in sequence this operation followed by the {@code after}
      *         operation.
      * @throws NullPointerException if {@code after} is null.
      */
diff --git a/src/main/java/org/apache/commons/lang3/math/Fraction.java b/src/main/java/org/apache/commons/lang3/math/Fraction.java
index 92c3d9050..6c9b310f9 100644
--- a/src/main/java/org/apache/commons/lang3/math/Fraction.java
+++ b/src/main/java/org/apache/commons/lang3/math/Fraction.java
@@ -21,11 +21,11 @@ import java.math.BigInteger;
 import org.apache.commons.lang3.Validate;
 
 /**
- * <p>{@code Fraction} is a {@code Number} implementation that
+ * <p>{@link Fraction} is a {@link Number} implementation that
  * stores fractions accurately.</p>
  *
  * <p>This class is immutable, and interoperable with most methods that accept
- * a {@code Number}.</p>
+ * a {@link Number}.</p>
  *
  * <p>Note that this class is intended for common use cases, it is <i>int</i>
  * based and thus suffers from various overflow issues. For a BigInteger based
@@ -43,51 +43,51 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     private static final long serialVersionUID = 65382027393090L;
 
     /**
-     * {@code Fraction} representation of 0.
+     * {@link Fraction} representation of 0.
      */
     public static final Fraction ZERO = new Fraction(0, 1);
     /**
-     * {@code Fraction} representation of 1.
+     * {@link Fraction} representation of 1.
      */
     public static final Fraction ONE = new Fraction(1, 1);
     /**
-     * {@code Fraction} representation of 1/2.
+     * {@link Fraction} representation of 1/2.
      */
     public static final Fraction ONE_HALF = new Fraction(1, 2);
     /**
-     * {@code Fraction} representation of 1/3.
+     * {@link Fraction} representation of 1/3.
      */
     public static final Fraction ONE_THIRD = new Fraction(1, 3);
     /**
-     * {@code Fraction} representation of 2/3.
+     * {@link Fraction} representation of 2/3.
      */
     public static final Fraction TWO_THIRDS = new Fraction(2, 3);
     /**
-     * {@code Fraction} representation of 1/4.
+     * {@link Fraction} representation of 1/4.
      */
     public static final Fraction ONE_QUARTER = new Fraction(1, 4);
     /**
-     * {@code Fraction} representation of 2/4.
+     * {@link Fraction} representation of 2/4.
      */
     public static final Fraction TWO_QUARTERS = new Fraction(2, 4);
     /**
-     * {@code Fraction} representation of 3/4.
+     * {@link Fraction} representation of 3/4.
      */
     public static final Fraction THREE_QUARTERS = new Fraction(3, 4);
     /**
-     * {@code Fraction} representation of 1/5.
+     * {@link Fraction} representation of 1/5.
      */
     public static final Fraction ONE_FIFTH = new Fraction(1, 5);
     /**
-     * {@code Fraction} representation of 2/5.
+     * {@link Fraction} representation of 2/5.
      */
     public static final Fraction TWO_FIFTHS = new Fraction(2, 5);
     /**
-     * {@code Fraction} representation of 3/5.
+     * {@link Fraction} representation of 3/5.
      */
     public static final Fraction THREE_FIFTHS = new Fraction(3, 5);
     /**
-     * {@code Fraction} representation of 4/5.
+     * {@link Fraction} representation of 4/5.
      */
     public static final Fraction FOUR_FIFTHS = new Fraction(4, 5);
 
@@ -115,7 +115,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     private transient String toProperString;
 
     /**
-     * <p>Constructs a {@code Fraction} instance with the 2 parts
+     * <p>Constructs a {@link Fraction} instance with the 2 parts
      * of a fraction Y/Z.</p>
      *
      * @param numerator  the numerator, for example the three in 'three sevenths'
@@ -127,7 +127,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     }
 
     /**
-     * <p>Creates a {@code Fraction} instance with the 2 parts
+     * <p>Creates a {@link Fraction} instance with the 2 parts
      * of a fraction Y/Z.</p>
      *
      * <p>Any negative signs are resolved to be on the numerator.</p>
@@ -153,7 +153,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     }
 
     /**
-     * <p>Creates a {@code Fraction} instance with the 3 parts
+     * <p>Creates a {@link Fraction} instance with the 3 parts
      * of a fraction X Y/Z.</p>
      *
      * <p>The negative sign must be passed in on the whole number part.</p>
@@ -191,7 +191,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     }
 
     /**
-     * <p>Creates a reduced {@code Fraction} instance with the 2 parts
+     * <p>Creates a reduced {@link Fraction} instance with the 2 parts
      * of a fraction Y/Z.</p>
      *
      * <p>For example, if the input parameters represent 2/4, then the created
@@ -231,7 +231,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     }
 
     /**
-     * <p>Creates a {@code Fraction} instance from a {@code double} value.</p>
+     * <p>Creates a {@link Fraction} instance from a {@code double} value.</p>
      *
      * <p>This method uses the <a href="http://archives.math.utk.edu/articles/atuyl/confrac/">
      *  continued fraction algorithm</a>, computing a maximum of
@@ -293,7 +293,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     }
 
     /**
-     * <p>Creates a Fraction from a {@code String}.</p>
+     * <p>Creates a Fraction from a {@link String}.</p>
      *
      * <p>The formats accepted are:</p>
      *
@@ -306,7 +306,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      * <p>and a .</p>
      *
      * @param str  the string to parse, must not be {@code null}
-     * @return the new {@code Fraction} instance
+     * @return the new {@link Fraction} instance
      * @throws NullPointerException if the string is {@code null}
      * @throws NumberFormatException if the number format is invalid
      */
@@ -517,7 +517,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      * <p>The returned fraction is in reduced form.</p>
      *
      * @param power  the power to raise the fraction to
-     * @return {@code this} if the power is one, {@code ONE} if the power
+     * @return {@code this} if the power is one, {@link ONE} if the power
      * is zero (even if the fraction equals ZERO) or a new fraction instance
      * raised to the appropriate power
      * @throws ArithmeticException if the resulting numerator or denominator exceeds
@@ -684,7 +684,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      * The algorithm follows Knuth, 4.5.1.</p>
      *
      * @param fraction  the fraction to add, must not be {@code null}
-     * @return a {@code Fraction} instance with the resulting values
+     * @return a {@link Fraction} instance with the resulting values
      * @throws IllegalArgumentException if the fraction is {@code null}
      * @throws ArithmeticException if the resulting numerator or denominator exceeds
      *  {@code Integer.MAX_VALUE}
@@ -698,7 +698,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      * returning the result in reduced form.</p>
      *
      * @param fraction  the fraction to subtract, must not be {@code null}
-     * @return a {@code Fraction} instance with the resulting values
+     * @return a {@link Fraction} instance with the resulting values
      * @throws IllegalArgumentException if the fraction is {@code null}
      * @throws ArithmeticException if the resulting numerator or denominator
      *   cannot be represented in an {@code int}.
@@ -712,7 +712,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      *
      * @param fraction the fraction to subtract, must not be {@code null}
      * @param isAdd true to add, false to subtract
-     * @return a {@code Fraction} instance with the resulting values
+     * @return a {@link Fraction} instance with the resulting values
      * @throws IllegalArgumentException if the fraction is {@code null}
      * @throws ArithmeticException if the resulting numerator or denominator
      *   cannot be represented in an {@code int}.
@@ -760,7 +760,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      * result in reduced form.</p>
      *
      * @param fraction  the fraction to multiply by, must not be {@code null}
-     * @return a {@code Fraction} instance with the resulting values
+     * @return a {@link Fraction} instance with the resulting values
      * @throws NullPointerException if the fraction is {@code null}
      * @throws ArithmeticException if the resulting numerator or denominator exceeds
      *  {@code Integer.MAX_VALUE}
@@ -782,7 +782,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      * <p>Divide the value of this fraction by another.</p>
      *
      * @param fraction  the fraction to divide by, must not be {@code null}
-     * @return a {@code Fraction} instance with the resulting values
+     * @return a {@link Fraction} instance with the resulting values
      * @throws NullPointerException if the fraction is {@code null}
      * @throws ArithmeticException if the fraction to divide by is zero
      * @throws ArithmeticException if the resulting numerator or denominator exceeds
@@ -839,7 +839,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
      *
      * @param other  the object to compare to
      * @return -1 if this is less, 0 if equal, +1 if greater
-     * @throws ClassCastException if the object is not a {@code Fraction}
+     * @throws ClassCastException if the object is not a {@link Fraction}
      * @throws NullPointerException if the object is {@code null}
      */
     @Override
@@ -858,11 +858,11 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     }
 
     /**
-     * <p>Gets the fraction as a {@code String}.</p>
+     * <p>Gets the fraction as a {@link String}.</p>
      *
      * <p>The format used is '<i>numerator</i>/<i>denominator</i>' always.
      *
-     * @return a {@code String} form of the fraction
+     * @return a {@link String} form of the fraction
      */
     @Override
     public String toString() {
@@ -873,13 +873,13 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     }
 
     /**
-     * <p>Gets the fraction as a proper {@code String} in the format X Y/Z.</p>
+     * <p>Gets the fraction as a proper {@link String} in the format X Y/Z.</p>
      *
      * <p>The format used in '<i>wholeNumber</i> <i>numerator</i>/<i>denominator</i>'.
      * If the whole number is zero it will be omitted. If the numerator is zero,
      * only the whole number is returned.</p>
      *
-     * @return a {@code String} form of the fraction
+     * @return a {@link String} form of the fraction
      */
     public String toProperString() {
         if (toProperString == null) {
diff --git a/src/main/java/org/apache/commons/lang3/math/NumberUtils.java b/src/main/java/org/apache/commons/lang3/math/NumberUtils.java
index ae6b87928..e7bea3afa 100644
--- a/src/main/java/org/apache/commons/lang3/math/NumberUtils.java
+++ b/src/main/java/org/apache/commons/lang3/math/NumberUtils.java
@@ -86,7 +86,7 @@ public class NumberUtils {
 
 
     /**
-     * <p>{@code NumberUtils} instances should NOT be constructed in standard programming.
+     * <p>{@link NumberUtils} instances should NOT be constructed in standard programming.
      * Instead, the class should be used as {@code NumberUtils.toInt("6");}.</p>
      *
      * <p>This constructor is public to permit tools that require a JavaBean instance
@@ -96,7 +96,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to an {@code int}, returning
+     * <p>Convert a {@link String} to an {@code int}, returning
      * {@code zero} if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, {@code zero} is returned.</p>
@@ -117,7 +117,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to an {@code int}, returning a
+     * <p>Convert a {@link String} to an {@code int}, returning a
      * default value if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, the default value is returned.</p>
@@ -145,7 +145,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code long}, returning
+     * <p>Convert a {@link String} to a {@code long}, returning
      * {@code zero} if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, {@code zero} is returned.</p>
@@ -166,7 +166,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code long}, returning a
+     * <p>Convert a {@link String} to a {@code long}, returning a
      * default value if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, the default value is returned.</p>
@@ -194,7 +194,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code float}, returning
+     * <p>Convert a {@link String} to a {@code float}, returning
      * {@code 0.0f} if the conversion fails.</p>
      *
      * <p>If the string {@code str} is {@code null},
@@ -216,7 +216,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code float}, returning a
+     * <p>Convert a {@link String} to a {@code float}, returning a
      * default value if the conversion fails.</p>
      *
      * <p>If the string {@code str} is {@code null}, the default
@@ -246,7 +246,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code double}, returning
+     * <p>Convert a {@link String} to a {@code double}, returning
      * {@code 0.0d} if the conversion fails.</p>
      *
      * <p>If the string {@code str} is {@code null},
@@ -268,7 +268,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code double}, returning a
+     * <p>Convert a {@link String} to a {@code double}, returning a
      * default value if the conversion fails.</p>
      *
      * <p>If the string {@code str} is {@code null}, the default
@@ -298,9 +298,9 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code BigDecimal} to a {@code double}.</p>
+     * <p>Convert a {@link BigDecimal} to a {@code double}.</p>
      *
-     * <p>If the {@code BigDecimal} {@code value} is
+     * <p>If the {@link BigDecimal} {@code value} is
      * {@code null}, then the specified default value is returned.</p>
      *
      * <pre>
@@ -308,9 +308,9 @@ public class NumberUtils {
      *   NumberUtils.toDouble(BigDecimal.valudOf(8.5d)) = 8.5d
      * </pre>
      *
-     * @param value the {@code BigDecimal} to convert, may be {@code null}.
-     * @return the double represented by the {@code BigDecimal} or
-     *  {@code 0.0d} if the {@code BigDecimal} is {@code null}.
+     * @param value the {@link BigDecimal} to convert, may be {@code null}.
+     * @return the double represented by the {@link BigDecimal} or
+     *  {@code 0.0d} if the {@link BigDecimal} is {@code null}.
      * @since 3.8
      */
     public static double toDouble(final BigDecimal value) {
@@ -318,9 +318,9 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code BigDecimal} to a {@code double}.</p>
+     * <p>Convert a {@link BigDecimal} to a {@code double}.</p>
      *
-     * <p>If the {@code BigDecimal} {@code value} is
+     * <p>If the {@link BigDecimal} {@code value} is
      * {@code null}, then the specified default value is returned.</p>
      *
      * <pre>
@@ -328,10 +328,10 @@ public class NumberUtils {
      *   NumberUtils.toDouble(BigDecimal.valudOf(8.5d), 1.1d) = 8.5d
      * </pre>
      *
-     * @param value the {@code BigDecimal} to convert, may be {@code null}.
+     * @param value the {@link BigDecimal} to convert, may be {@code null}.
      * @param defaultValue the default value
-     * @return the double represented by the {@code BigDecimal} or the
-     *  defaultValue if the {@code BigDecimal} is {@code null}.
+     * @return the double represented by the {@link BigDecimal} or the
+     *  defaultValue if the {@link BigDecimal} is {@code null}.
      * @since 3.8
      */
     public static double toDouble(final BigDecimal value, final double defaultValue) {
@@ -339,7 +339,7 @@ public class NumberUtils {
     }
 
      /**
-     * <p>Convert a {@code String} to a {@code byte}, returning
+     * <p>Convert a {@link String} to a {@code byte}, returning
      * {@code zero} if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, {@code zero} is returned.</p>
@@ -360,7 +360,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code byte}, returning a
+     * <p>Convert a {@link String} to a {@code byte}, returning a
      * default value if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, the default value is returned.</p>
@@ -388,7 +388,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code short}, returning
+     * <p>Convert a {@link String} to a {@code short}, returning
      * {@code zero} if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, {@code zero} is returned.</p>
@@ -409,7 +409,7 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to an {@code short}, returning a
+     * <p>Convert a {@link String} to an {@code short}, returning a
      * default value if the conversion fails.</p>
      *
      * <p>If the string is {@code null}, the default value is returned.</p>
@@ -437,15 +437,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code BigDecimal} to a {@code BigDecimal} with a scale of
+     * Convert a {@link BigDecimal} to a {@link BigDecimal} with a scale of
      * two that has been rounded using {@code RoundingMode.HALF_EVEN}. If the supplied
      * {@code value} is null, then {@code BigDecimal.ZERO} is returned.
      *
-     * <p>Note, the scale of a {@code BigDecimal} is the number of digits to the right of the
+     * <p>Note, the scale of a {@link BigDecimal} is the number of digits to the right of the
      * decimal point.</p>
      *
-     * @param value the {@code BigDecimal} to convert, may be null.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @param value the {@link BigDecimal} to convert, may be null.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final BigDecimal value) {
@@ -453,15 +453,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code BigDecimal} to a {@code BigDecimal} whose scale is the
-     * specified value with a {@code RoundingMode} applied. If the input {@code value}
+     * Convert a {@link BigDecimal} to a {@link BigDecimal} whose scale is the
+     * specified value with a {@link RoundingMode} applied. If the input {@code value}
      * is {@code null}, we simply return {@code BigDecimal.ZERO}.
      *
-     * @param value the {@code BigDecimal} to convert, may be null.
+     * @param value the {@link BigDecimal} to convert, may be null.
      * @param scale the number of digits to the right of the decimal point.
      * @param roundingMode a rounding behavior for numerical operations capable of
      *  discarding precision.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final BigDecimal value, final int scale, final RoundingMode roundingMode) {
@@ -475,15 +475,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code Float} to a {@code BigDecimal} with a scale of
+     * Convert a {@link Float} to a {@link BigDecimal} with a scale of
      * two that has been rounded using {@code RoundingMode.HALF_EVEN}. If the supplied
      * {@code value} is null, then {@code BigDecimal.ZERO} is returned.
      *
-     * <p>Note, the scale of a {@code BigDecimal} is the number of digits to the right of the
+     * <p>Note, the scale of a {@link BigDecimal} is the number of digits to the right of the
      * decimal point.</p>
      *
-     * @param value the {@code Float} to convert, may be null.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @param value the {@link Float} to convert, may be null.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final Float value) {
@@ -491,15 +491,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code Float} to a {@code BigDecimal} whose scale is the
-     * specified value with a {@code RoundingMode} applied. If the input {@code value}
+     * Convert a {@link Float} to a {@link BigDecimal} whose scale is the
+     * specified value with a {@link RoundingMode} applied. If the input {@code value}
      * is {@code null}, we simply return {@code BigDecimal.ZERO}.
      *
-     * @param value the {@code Float} to convert, may be null.
+     * @param value the {@link Float} to convert, may be null.
      * @param scale the number of digits to the right of the decimal point.
      * @param roundingMode a rounding behavior for numerical operations capable of
      *  discarding precision.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final Float value, final int scale, final RoundingMode roundingMode) {
@@ -514,15 +514,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code Double} to a {@code BigDecimal} with a scale of
+     * Convert a {@link Double} to a {@link BigDecimal} with a scale of
      * two that has been rounded using {@code RoundingMode.HALF_EVEN}. If the supplied
      * {@code value} is null, then {@code BigDecimal.ZERO} is returned.
      *
-     * <p>Note, the scale of a {@code BigDecimal} is the number of digits to the right of the
+     * <p>Note, the scale of a {@link BigDecimal} is the number of digits to the right of the
      * decimal point.</p>
      *
-     * @param value the {@code Double} to convert, may be null.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @param value the {@link Double} to convert, may be null.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final Double value) {
@@ -530,15 +530,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code Double} to a {@code BigDecimal} whose scale is the
-     * specified value with a {@code RoundingMode} applied. If the input {@code value}
+     * Convert a {@link Double} to a {@link BigDecimal} whose scale is the
+     * specified value with a {@link RoundingMode} applied. If the input {@code value}
      * is {@code null}, we simply return {@code BigDecimal.ZERO}.
      *
-     * @param value the {@code Double} to convert, may be null.
+     * @param value the {@link Double} to convert, may be null.
      * @param scale the number of digits to the right of the decimal point.
      * @param roundingMode a rounding behavior for numerical operations capable of
      *  discarding precision.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final Double value, final int scale, final RoundingMode roundingMode) {
@@ -553,15 +553,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code String} to a {@code BigDecimal} with a scale of
+     * Convert a {@link String} to a {@link BigDecimal} with a scale of
      * two that has been rounded using {@code RoundingMode.HALF_EVEN}. If the supplied
      * {@code value} is null, then {@code BigDecimal.ZERO} is returned.
      *
-     * <p>Note, the scale of a {@code BigDecimal} is the number of digits to the right of the
+     * <p>Note, the scale of a {@link BigDecimal} is the number of digits to the right of the
      * decimal point.</p>
      *
-     * @param value the {@code String} to convert, may be null.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @param value the {@link String} to convert, may be null.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final String value) {
@@ -569,15 +569,15 @@ public class NumberUtils {
     }
 
     /**
-     * Convert a {@code String} to a {@code BigDecimal} whose scale is the
-     * specified value with a {@code RoundingMode} applied. If the input {@code value}
+     * Convert a {@link String} to a {@link BigDecimal} whose scale is the
+     * specified value with a {@link RoundingMode} applied. If the input {@code value}
      * is {@code null}, we simply return {@code BigDecimal.ZERO}.
      *
-     * @param value the {@code String} to convert, may be null.
+     * @param value the {@link String} to convert, may be null.
      * @param scale the number of digits to the right of the decimal point.
      * @param roundingMode a rounding behavior for numerical operations capable of
      *  discarding precision.
-     * @return the scaled, with appropriate rounding, {@code BigDecimal}.
+     * @return the scaled, with appropriate rounding, {@link BigDecimal}.
      * @since 3.8
      */
     public static BigDecimal toScaledBigDecimal(final String value, final int scale, final RoundingMode roundingMode) {
@@ -639,9 +639,9 @@ public class NumberUtils {
      * until one is found that can represent the value.</p>
      *
      * <p>If a type specifier is not found, it will check for a decimal point
-     * and then try successively larger types from {@code Integer} to
-     * {@code BigInteger} and from {@code Float} to
-     * {@code BigDecimal}.</p>
+     * and then try successively larger types from {@link Integer} to
+     * {@link BigInteger} and from {@link Float} to
+     * {@link BigDecimal}.</p>
      *
      * <p>
      * Integral values with a leading {@code 0} will be interpreted as octal; the returned number will
@@ -896,12 +896,12 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code Float}.</p>
+     * <p>Convert a {@link String} to a {@link Float}.</p>
      *
      * <p>Returns {@code null} if the string is {@code null}.</p>
      *
-     * @param str  a {@code String} to convert, may be null
-     * @return converted {@code Float} (or null if the input is null)
+     * @param str  a {@link String} to convert, may be null
+     * @return converted {@link Float} (or null if the input is null)
      * @throws NumberFormatException if the value cannot be converted
      */
     public static Float createFloat(final String str) {
@@ -912,12 +912,12 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code Double}.</p>
+     * <p>Convert a {@link String} to a {@link Double}.</p>
      *
      * <p>Returns {@code null} if the string is {@code null}.</p>
      *
-     * @param str  a {@code String} to convert, may be null
-     * @return converted {@code Double} (or null if the input is null)
+     * @param str  a {@link String} to convert, may be null
+     * @return converted {@link Double} (or null if the input is null)
      * @throws NumberFormatException if the value cannot be converted
      */
     public static Double createDouble(final String str) {
@@ -928,14 +928,14 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code Integer}, handling
+     * <p>Convert a {@link String} to a {@link Integer}, handling
      * hex (0xhhhh) and octal (0dddd) notations.
      * N.B. a leading zero means octal; spaces are not trimmed.</p>
      *
      * <p>Returns {@code null} if the string is {@code null}.</p>
      *
-     * @param str  a {@code String} to convert, may be null
-     * @return converted {@code Integer} (or null if the input is null)
+     * @param str  a {@link String} to convert, may be null
+     * @return converted {@link Integer} (or null if the input is null)
      * @throws NumberFormatException if the value cannot be converted
      */
     public static Integer createInteger(final String str) {
@@ -947,14 +947,14 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code Long};
+     * <p>Convert a {@link String} to a {@link Long};
      * since 3.1 it handles hex (0Xhhhh) and octal (0ddd) notations.
      * N.B. a leading zero means octal; spaces are not trimmed.</p>
      *
      * <p>Returns {@code null} if the string is {@code null}.</p>
      *
-     * @param str  a {@code String} to convert, may be null
-     * @return converted {@code Long} (or null if the input is null)
+     * @param str  a {@link String} to convert, may be null
+     * @return converted {@link Long} (or null if the input is null)
      * @throws NumberFormatException if the value cannot be converted
      */
     public static Long createLong(final String str) {
@@ -965,13 +965,13 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code BigInteger};
+     * <p>Convert a {@link String} to a {@link BigInteger};
      * since 3.2 it handles hex (0x or #) and octal (0) notations.</p>
      *
      * <p>Returns {@code null} if the string is {@code null}.</p>
      *
-     * @param str  a {@code String} to convert, may be null
-     * @return converted {@code BigInteger} (or null if the input is null)
+     * @param str  a {@link String} to convert, may be null
+     * @return converted {@link BigInteger} (or null if the input is null)
      * @throws NumberFormatException if the value cannot be converted
      */
     public static BigInteger createBigInteger(final String str) {
@@ -1007,12 +1007,12 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Convert a {@code String} to a {@code BigDecimal}.</p>
+     * <p>Convert a {@link String} to a {@link BigDecimal}.</p>
      *
      * <p>Returns {@code null} if the string is {@code null}.</p>
      *
-     * @param str  a {@code String} to convert, may be null
-     * @return converted {@code BigDecimal} (or null if the input is null)
+     * @param str  a {@link String} to convert, may be null
+     * @return converted {@link BigDecimal} (or null if the input is null)
      * @throws NumberFormatException if the value cannot be converted
      */
     public static BigDecimal createBigDecimal(final String str) {
@@ -1553,13 +1553,13 @@ public class NumberUtils {
     }
 
     /**
-     * <p>Checks whether the {@code String} contains only
+     * <p>Checks whether the {@link String} contains only
      * digit characters.</p>
      *
-     * <p>{@code Null} and empty String will return
+     * <p>{@code null} and empty String will return
      * {@code false}.</p>
      *
-     * @param str  the {@code String} to check
+     * @param str  the {@link String} to check
      * @return {@code true} if str contains only Unicode numeric
      */
     public static boolean isDigits(final String str) {
@@ -1578,13 +1578,13 @@ public class NumberUtils {
      * {@code false}, since {@code 9} is not a valid octal value.
      * However, numbers beginning with {@code 0.} are treated as decimal.</p>
      *
-     * <p>{@code null} and empty/blank {@code String} will return
+     * <p>{@code null} and empty/blank {@link String} will return
      * {@code false}.</p>
      *
      * <p>Note, {@link #createNumber(String)} should return a number for every
      * input resulting in {@code true}.</p>
      *
-     * @param str  the {@code String} to check
+     * @param str  the {@link String} to check
      * @return {@code true} if the string is a correctly formatted number
      * @since 3.3 the code supports hex {@code 0Xhhh} an
      *        octal {@code 0ddd} validation
@@ -1608,13 +1608,13 @@ public class NumberUtils {
      * {@code false}, since {@code 9} is not a valid octal value.
      * However, numbers beginning with {@code 0.} are treated as decimal.</p>
      *
-     * <p>{@code null} and empty/blank {@code String} will return
+     * <p>{@code null} and empty/blank {@link String} will return
      * {@code false}.</p>
      *
      * <p>Note, {@link #createNumber(String)} should return a number for every
      * input resulting in {@code true}.</p>
      *
-     * @param str  the {@code String} to check
+     * @param str  the {@link String} to check
      * @return {@code true} if the string is a correctly formatted number
      * @since 3.5
      */
@@ -1743,7 +1743,7 @@ public class NumberUtils {
      * <p>Hexadecimal and scientific notations are <strong>not</strong> considered parsable.
      * See {@link #isCreatable(String)} on those cases.</p>
      *
-     * <p>{@code Null} and empty String will return {@code false}.</p>
+     * <p>{@code null} and empty String will return {@code false}.</p>
      *
      * @param str the String to check.
      * @return {@code true} if the string is a parsable number.
diff --git a/src/main/java/org/apache/commons/lang3/mutable/Mutable.java b/src/main/java/org/apache/commons/lang3/mutable/Mutable.java
index 6aa3182f0..6abfe2bfc 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/Mutable.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/Mutable.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.mutable;
 /**
  * Provides mutable access to a value.
  * <p>
- * {@code Mutable} is used as a generic interface to the implementations in this package.
+ * {@link Mutable} is used as a generic interface to the implementations in this package.
  * <p>
  * A typical use case would be to enable a primitive or string to be passed to a method and allow that method to
  * effectively change the value of the primitive/string. Another use case is to store a frequently changing primitive in
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java b/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java
index e19bbf09e..b28516498 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java
@@ -155,7 +155,7 @@ public class MutableBoolean implements Mutable<Boolean>, Serializable, Comparabl
 
     /**
      * Compares this object to the specified object. The result is {@code true} if and only if the argument is
-     * not {@code null} and is an {@code MutableBoolean} object that contains the same
+     * not {@code null} and is an {@link MutableBoolean} object that contains the same
      * {@code boolean} value as this object.
      *
      * @param obj  the object to compare with, null returns false
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java b/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java
index 126d2bb3b..308064589 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java
@@ -332,7 +332,7 @@ public class MutableByte extends Number implements Comparable<MutableByte>, Muta
 
     /**
      * Compares this object to the specified object. The result is {@code true} if and only if the argument is
-     * not {@code null} and is a {@code MutableByte} object that contains the same {@code byte} value
+     * not {@code null} and is a {@link MutableByte} object that contains the same {@code byte} value
      * as this object.
      *
      * @param obj  the object to compare with, null returns false
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java b/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java
index 24c9bd368..83f30895e 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java
@@ -338,12 +338,12 @@ public class MutableDouble extends Number implements Comparable<MutableDouble>,
 
     /**
      * Compares this object against the specified object. The result is {@code true} if and only if the argument
-     * is not {@code null} and is a {@code Double} object that represents a double that has the identical
+     * is not {@code null} and is a {@link Double} object that represents a double that has the identical
      * bit pattern to the bit pattern of the double represented by this object. For this purpose, two
      * {@code double} values are considered to be the same if and only if the method
      * {@link Double#doubleToLongBits(double)}returns the same long value when applied to each.
      * <p>
-     * Note that in most cases, for two instances of class {@code Double},{@code d1} and {@code d2},
+     * Note that in most cases, for two instances of class {@link Double},{@code d1} and {@code d2},
      * the value of {@code d1.equals(d2)} is {@code true} if and only if <blockquote>
      *
      * <pre>
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java b/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java
index 12506c535..bc7f0b0f0 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java
@@ -338,12 +338,12 @@ public class MutableFloat extends Number implements Comparable<MutableFloat>, Mu
 
     /**
      * Compares this object against some other object. The result is {@code true} if and only if the argument is
-     * not {@code null} and is a {@code Float} object that represents a {@code float} that has the
+     * not {@code null} and is a {@link Float} object that represents a {@code float} that has the
      * identical bit pattern to the bit pattern of the {@code float} represented by this object. For this
      * purpose, two float values are considered to be the same if and only if the method
      * {@link Float#floatToIntBits(float)}returns the same int value when applied to each.
      * <p>
-     * Note that in most cases, for two instances of class {@code Float},{@code f1} and {@code f2},
+     * Note that in most cases, for two instances of class {@link Float},{@code f1} and {@code f2},
      * the value of {@code f1.equals(f2)} is {@code true} if and only if <blockquote>
      *
      * <pre>
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java b/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java
index 8c37cb9e8..9698f5219 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java
@@ -322,7 +322,7 @@ public class MutableInt extends Number implements Comparable<MutableInt>, Mutabl
 
     /**
      * Compares this object to the specified object. The result is {@code true} if and only if the argument is
-     * not {@code null} and is a {@code MutableInt} object that contains the same {@code int} value
+     * not {@code null} and is a {@link MutableInt} object that contains the same {@code int} value
      * as this object.
      *
      * @param obj  the object to compare with, null returns false
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java b/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java
index 2e2367743..8867a6f6b 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java
@@ -322,7 +322,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
 
     /**
      * Compares this object to the specified object. The result is {@code true} if and only if the argument
-     * is not {@code null} and is a {@code MutableLong} object that contains the same {@code long}
+     * is not {@code null} and is a {@link MutableLong} object that contains the same {@code long}
      * value as this object.
      *
      * @param obj  the object to compare with, null returns false
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java b/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java
index 7bdd23c3d..bc755273b 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java
@@ -20,7 +20,7 @@ package org.apache.commons.lang3.mutable;
 import java.io.Serializable;
 
 /**
- * A mutable {@code Object} wrapper.
+ * A mutable {@link Object} wrapper.
  *
  * @param <T> the type to set and get
  * @since 2.1
@@ -75,7 +75,7 @@ public class MutableObject<T> implements Mutable<T>, Serializable {
     /**
      * <p>
      * Compares this object against the specified object. The result is {@code true} if and only if the argument
-     * is not {@code null} and is a {@code MutableObject} object that contains the same {@code T}
+     * is not {@code null} and is a {@link MutableObject} object that contains the same {@link T}
      * value as this object.
      * </p>
      *
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java b/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java
index 9be44617d..4872979fd 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java
@@ -332,7 +332,7 @@ public class MutableShort extends Number implements Comparable<MutableShort>, Mu
 
     /**
      * Compares this object to the specified object. The result is {@code true} if and only if the argument
-     * is not {@code null} and is a {@code MutableShort} object that contains the same {@code short}
+     * is not {@code null} and is a {@link MutableShort} object that contains the same {@code short}
      * value as this object.
      *
      * @param obj  the object to compare with, null returns false
diff --git a/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java b/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java
index a4b77a38f..ec86b28cb 100644
--- a/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java
+++ b/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java
@@ -130,7 +130,7 @@ public class MethodUtils {
      * <p>This method delegates the method search to {@link #getMatchingAccessibleMethod(Class, String, Class[])}.</p>
      *
      * <p>This method supports calls to methods taking primitive parameters
-     * via passing in wrapping classes. So, for example, a {@code Boolean} object
+     * via passing in wrapping classes. So, for example, a {@link Boolean} object
      * would match a {@code boolean} primitive.</p>
      *
      * <p>This is a convenient wrapper for
@@ -157,7 +157,7 @@ public class MethodUtils {
      * <p>Invokes a named method whose parameter type matches the object type.</p>
      *
      * <p>This method supports calls to methods taking primitive parameters
-     * via passing in wrapping classes. So, for example, a {@code Boolean} object
+     * via passing in wrapping classes. So, for example, a {@link Boolean} object
      * would match a {@code boolean} primitive.</p>
      *
      * <p>This is a convenient wrapper for
@@ -187,7 +187,7 @@ public class MethodUtils {
      * <p>Invokes a named method whose parameter type matches the object type.</p>
      *
      * <p>This method supports calls to methods taking primitive parameters
-     * via passing in wrapping classes. So, for example, a {@code Boolean} object
+     * via passing in wrapping classes. So, for example, a {@link Boolean} object
      * would match a {@code boolean} primitive.</p>
      *
      * @param object invoke method on this object
@@ -237,7 +237,7 @@ public class MethodUtils {
      * <p>This method delegates the method search to {@link #getMatchingAccessibleMethod(Class, String, Class[])}.</p>
      *
      * <p>This method supports calls to methods taking primitive parameters
-     * via passing in wrapping classes. So, for example, a {@code Boolean} object
+     * via passing in wrapping classes. So, for example, a {@link Boolean} object
      * would match a {@code boolean} primitive.</p>
      *
      * @param object invoke method on this object
@@ -376,7 +376,7 @@ public class MethodUtils {
      * <p>This method delegates the method search to {@link #getMatchingAccessibleMethod(Class, String, Class[])}.</p>
      *
      * <p>This method supports calls to methods taking primitive parameters
-     * via passing in wrapping classes. So, for example, a {@code Boolean} class
+     * via passing in wrapping classes. So, for example, a {@link Boolean} class
      * would match a {@code boolean} primitive.</p>
      *
      * <p>This is a convenient wrapper for
@@ -407,7 +407,7 @@ public class MethodUtils {
      * <p>This method delegates the method search to {@link #getMatchingAccessibleMethod(Class, String, Class[])}.</p>
      *
      * <p>This method supports calls to methods taking primitive parameters
-     * via passing in wrapping classes. So, for example, a {@code Boolean} class
+     * via passing in wrapping classes. So, for example, a {@link Boolean} class
      * would match a {@code boolean} primitive.</p>
      *
      *
@@ -655,7 +655,7 @@ public class MethodUtils {
      * </p>
      *
      * <p>This method can match primitive parameter by passing in wrapper classes.
-     * For example, a {@code Boolean} will match a primitive {@code boolean}
+     * For example, a {@link Boolean} will match a primitive {@code boolean}
      * parameter.
      * </p>
      *
@@ -988,7 +988,7 @@ public class MethodUtils {
      * from interfaces, and so on in a breadth first way.</p>
      *
      * @param cls  the class to look up, may be {@code null}
-     * @return the combined {@code List} of superclasses and interfaces in order
+     * @return the combined {@link List} of superclasses and interfaces in order
      * going up from this one
      *  {@code null} if null input
      */
diff --git a/src/main/java/org/apache/commons/lang3/reflect/TypeLiteral.java b/src/main/java/org/apache/commons/lang3/reflect/TypeLiteral.java
index e1e28988b..74f2bdbbb 100644
--- a/src/main/java/org/apache/commons/lang3/reflect/TypeLiteral.java
+++ b/src/main/java/org/apache/commons/lang3/reflect/TypeLiteral.java
@@ -59,7 +59,7 @@ import org.apache.commons.lang3.Validate;
  * <p>
  * This has the effect of "jumping up" a level to tie a {@code java.lang.reflect.Type}
  * to a type variable while simultaneously making it short work to obtain a
- * {@code Type} instance for any given type, inline.
+ * {@link Type} instance for any given type, inline.
  * </p>
  * <p>Additionally {@link TypeLiteral} implements the {@link Typed} interface which
  * is a generalization of this concept, and which may be implemented in custom classes.
diff --git a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
index c08ada56c..f6bfca253 100644
--- a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
+++ b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
@@ -24,6 +24,7 @@ import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
 import java.lang.reflect.WildcardType;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -31,6 +32,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.TreeSet;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.ClassUtils;
@@ -321,7 +323,7 @@ public class TypeUtils {
     /**
      * Formats a {@link Class} as a {@link String}.
      *
-     * @param cls {@code Class} to format
+     * @param cls {@link Class} to format
      * @return String
      * @since 3.2
      */
@@ -399,18 +401,18 @@ public class TypeUtils {
      * parameter of {@link java.util.SortedSet}, which in turn sets the
      * parameter of {@link Set}, which in turn sets the parameter of
      * {@link java.util.Collection}, which in turn sets the parameter of
-     * {@link java.lang.Iterable}. Since {@code TreeSet}'s parameter maps
-     * (indirectly) to {@code Iterable}'s parameter, it will be able to
+     * {@link java.lang.Iterable}. Since {@link TreeSet}'s parameter maps
+     * (indirectly) to {@link Iterable}'s parameter, it will be able to
      * determine that based on the super type {@code Iterable<? extends
      * Map<Integer, ? extends Collection<?>>>}, the parameter of
-     * {@code TreeSet} is {@code ? extends Map<Integer, ? extends
+     * {@link TreeSet} is {@code ? extends Map<Integer, ? extends
      * Collection<?>>}.
      * </p>
      *
      * @param cls the class whose type parameters are to be determined, not {@code null}
      * @param superParameterizedType the super type from which {@code cls}'s type
      * arguments are to be determined, not {@code null}
-     * @return a {@code Map} of the type assignments that could be determined
+     * @return a {@link Map} of the type assignments that could be determined
      * for the type variables in each type in the inheritance hierarchy from
      * {@code type} to {@code toClass} inclusive.
      */
@@ -587,7 +589,7 @@ public class TypeUtils {
     /**
      * Formats a {@link GenericArrayType} as a {@link String}.
      *
-     * @param genericArrayType {@code GenericArrayType} to format
+     * @param genericArrayType {@link GenericArrayType} to format
      * @return String
      * @since 3.2
      */
@@ -713,7 +715,7 @@ public class TypeUtils {
      * Transforms the passed in type to a {@link Class} object. Type-checking method of convenience.
      *
      * @param parameterizedType the type to be converted
-     * @return the corresponding {@code Class} object
+     * @return the corresponding {@link Class} object
      * @throws IllegalStateException if the conversion fails
      */
     private static Class<?> getRawType(final ParameterizedType parameterizedType) {
@@ -813,7 +815,7 @@ public class TypeUtils {
      * @param cls the class in question
      * @param toClass the context class
      * @param subtypeVarAssigns a map with type variables
-     * @return the {@code Map} with type arguments
+     * @return the {@link Map} with type arguments
      */
     private static Map<TypeVariable<?>, Type> getTypeArguments(Class<?> cls, final Class<?> toClass,
             final Map<TypeVariable<?>, Type> subtypeVarAssigns) {
@@ -857,7 +859,7 @@ public class TypeUtils {
      *
      * @param type specifies the subject parameterized type from which to
      *             harvest the parameters.
-     * @return a {@code Map} of the type arguments to their respective type
+     * @return a {@link Map} of the type arguments to their respective type
      * variables.
      */
     public static Map<TypeVariable<?>, Type> getTypeArguments(final ParameterizedType type) {
@@ -870,7 +872,7 @@ public class TypeUtils {
      * @param parameterizedType the parameterized type
      * @param toClass the class
      * @param subtypeVarAssigns a map with type variables
-     * @return the {@code Map} with type arguments
+     * @return the {@link Map} with type arguments
      */
     private static Map<TypeVariable<?>, Type> getTypeArguments(
             final ParameterizedType parameterizedType, final Class<?> toClass,
@@ -924,7 +926,7 @@ public class TypeUtils {
      * instance, this method will determine that both of the parameters for the
      * interface {@link Map} are {@link Object} for the subtype
      * {@link java.util.Properties Properties} even though the subtype does not
-     * directly implement the {@code Map} interface.
+     * directly implement the {@link Map} interface.
      *
      * <p>
      * This method returns {@code null} if {@code type} is not assignable to
@@ -937,7 +939,7 @@ public class TypeUtils {
      * arguments for the classes and interfaces that are part of the hierarchy
      * between {@code type} and {@code toClass}. So with the above
      * example, this method will also determine that the type arguments for
-     * {@link java.util.Hashtable Hashtable} are also both {@code Object}.
+     * {@link java.util.Hashtable Hashtable} are also both {@link Object}.
      * In cases where the interface specified by {@code toClass} is
      * (indirectly) implemented more than once (e.g. where {@code toClass}
      * specifies the interface {@link java.lang.Iterable Iterable} and
@@ -953,7 +955,7 @@ public class TypeUtils {
      * {@code toClass}
      * @param toClass the class whose type parameters are to be determined based
      * on the subtype {@code type}
-     * @return a {@code Map} of the type assignments for the type variables in
+     * @return a {@link Map} of the type assignments for the type variables in
      * each type in the inheritance hierarchy from {@code type} to
      * {@code toClass} inclusive.
      */
@@ -967,7 +969,7 @@ public class TypeUtils {
      * @param type the type in question
      * @param toClass the class
      * @param subtypeVarAssigns a map with type variables
-     * @return the {@code Map} with type arguments
+     * @return the {@link Map} with type arguments
      */
     private static Map<TypeVariable<?>, Type> getTypeArguments(final Type type, final Class<?> toClass,
             final Map<TypeVariable<?>, Type> subtypeVarAssigns) {
@@ -1497,7 +1499,7 @@ public class TypeUtils {
      * java.util.List&lt;String&gt;&gt;</pre>
      *
      * <p>
-     * since {@code List} is a subinterface of {@code Collection},
+     * since {@link List} is a subinterface of {@link Collection},
      * this method will return the bounds as if the declaration had been:
      * </p>
      *
@@ -1566,7 +1568,7 @@ public class TypeUtils {
     /**
      * Formats a {@link ParameterizedType} as a {@link String}.
      *
-     * @param parameterizedType {@code ParameterizedType} to format
+     * @param parameterizedType {@link ParameterizedType} to format
      * @return String
      * @since 3.2
      */
@@ -1762,7 +1764,7 @@ public class TypeUtils {
     /**
      * Formats a {@link TypeVariable} as a {@link String}.
      *
-     * @param typeVariable {@code TypeVariable} to format
+     * @param typeVariable {@link TypeVariable} to format
      * @return String
      * @since 3.2
      */
@@ -1875,7 +1877,7 @@ public class TypeUtils {
     /**
      * Formats a {@link WildcardType} as a {@link String}.
      *
-     * @param wildcardType {@code WildcardType} to format
+     * @param wildcardType {@link WildcardType} to format
      * @return String
      * @since 3.2
      */
@@ -1916,7 +1918,7 @@ public class TypeUtils {
     }
 
     /**
-     * {@code TypeUtils} instances should NOT be constructed in standard
+     * {@link TypeUtils} instances should NOT be constructed in standard
      * programming. Instead, the class should be used as
      * {@code TypeUtils.isAssignable(cls, toClass)}.
      * <p>
diff --git a/src/main/java/org/apache/commons/lang3/stream/IntStreams.java b/src/main/java/org/apache/commons/lang3/stream/IntStreams.java
index 46badc2c3..3e162afa9 100644
--- a/src/main/java/org/apache/commons/lang3/stream/IntStreams.java
+++ b/src/main/java/org/apache/commons/lang3/stream/IntStreams.java
@@ -32,7 +32,7 @@ public class IntStreams {
      * Shorthand for {@code IntStream.range(0, i)}.
      *
      * @param endExclusive the exclusive upper bound.
-     * @return a sequential {@code IntStream} for the range of {@code int} elements.
+     * @return a sequential {@link IntStream} for the range of {@code int} elements.
      */
     public static IntStream range(final int endExclusive) {
         return IntStream.range(0, endExclusive);
@@ -42,7 +42,7 @@ public class IntStreams {
      * Shorthand for {@code IntStream.rangeClosed(0, i)}.
      *
      * @param endInclusive the inclusive upper bound.
-     * @return a sequential {@code IntStream} for the range of {@code int} elements.
+     * @return a sequential {@link IntStream} for the range of {@code int} elements.
      */
     public static IntStream rangeClosed(final int endInclusive) {
         return IntStream.rangeClosed(0, endInclusive);
diff --git a/src/main/java/org/apache/commons/lang3/stream/Streams.java b/src/main/java/org/apache/commons/lang3/stream/Streams.java
index ff487b9ce..f20be935e 100644
--- a/src/main/java/org/apache/commons/lang3/stream/Streams.java
+++ b/src/main/java/org/apache/commons/lang3/stream/Streams.java
@@ -195,12 +195,12 @@ public class Streams {
         }
 
         /**
-         * Performs a mutable reduction operation on the elements of this stream using a {@code Collector}. A {@code Collector}
+         * Performs a mutable reduction operation on the elements of this stream using a {@link Collector}. A {@link Collector}
          * encapsulates the functions used as arguments to {@link #collect(Supplier, BiConsumer, BiConsumer)}, allowing for
          * reuse of collection strategies and composition of collect operations such as multiple-level grouping or partitioning.
          *
          * <p>
-         * If the underlying stream is parallel, and the {@code Collector} is concurrent, and either the stream is unordered or
+         * If the underlying stream is parallel, and the {@link Collector} is concurrent, and either the stream is unordered or
          * the collector is unordered, then a concurrent reduction will be performed (see {@link Collector} for details on
          * concurrent reduction.)
          * </p>
@@ -212,7 +212,7 @@ public class Streams {
          * <p>
          * When executed in parallel, multiple intermediate results may be instantiated, populated, and merged so as to maintain
          * isolation of mutable data structures. Therefore, even when executed in parallel with non-thread-safe data structures
-         * (such as {@code ArrayList}), no additional synchronization is needed for a parallel reduction.
+         * (such as {@link ArrayList}), no additional synchronization is needed for a parallel reduction.
          * </p>
          *
          * Note The following will accumulate strings into an ArrayList:
@@ -234,7 +234,7 @@ public class Streams {
          * </pre>
          *
          * <p>
-         * The following will classify {@code Person} objects by state and city, cascading two {@code Collector}s together:
+         * The following will classify {@code Person} objects by state and city, cascading two {@link Collector}s together:
          * </p>
          *
          * <pre>
@@ -245,8 +245,8 @@ public class Streams {
          * </pre>
          *
          * @param <R> the type of the result
-         * @param <A> the intermediate accumulation type of the {@code Collector}
-         * @param collector the {@code Collector} describing the reduction
+         * @param <A> the intermediate accumulation type of the {@link Collector}
+         * @param collector the {@link Collector} describing the reduction
          * @return the result of the reduction
          * @see #collect(Supplier, BiConsumer, BiConsumer)
          * @see Collectors
@@ -258,7 +258,7 @@ public class Streams {
 
         /**
          * Performs a mutable reduction operation on the elements of this FailableStream. A mutable reduction is one in which
-         * the reduced value is a mutable result container, such as an {@code ArrayList}, and elements are incorporated by
+         * the reduced value is a mutable result container, such as an {@link ArrayList}, and elements are incorporated by
          * updating the state of the result rather than by replacing the result. This produces a result equivalent to:
          *
          * <pre>
@@ -280,7 +280,7 @@ public class Streams {
          * </p>
          *
          * Note There are many existing classes in the JDK whose signatures are well-suited for use with method references as
-         * arguments to {@code collect()}. For example, the following will accumulate strings into an {@code ArrayList}:
+         * arguments to {@code collect()}. For example, the following will accumulate strings into an {@link ArrayList}:
          *
          * <pre>
          * {@code
@@ -676,11 +676,11 @@ public class Streams {
     }
 
     /**
-     * Returns a {@code Collector} that accumulates the input elements into a new array.
+     * Returns a {@link Collector} that accumulates the input elements into a new array.
      *
      * @param pElementType Type of an element in the array.
      * @param <T> the type of the input elements
-     * @return a {@code Collector} which collects all the input elements into an array, in encounter order
+     * @return a {@link Collector} which collects all the input elements into an array, in encounter order
      */
     public static <T extends Object> Collector<T, ?, T[]> toArray(final Class<T> pElementType) {
         return new ArrayCollector<>(pElementType);
diff --git a/src/main/java/org/apache/commons/lang3/text/ExtendedMessageFormat.java b/src/main/java/org/apache/commons/lang3/text/ExtendedMessageFormat.java
index d30ba9885..22a73537d 100644
--- a/src/main/java/org/apache/commons/lang3/text/ExtendedMessageFormat.java
+++ b/src/main/java/org/apache/commons/lang3/text/ExtendedMessageFormat.java
@@ -33,7 +33,7 @@ import org.apache.commons.lang3.Validate;
 /**
  * Extends {@code java.text.MessageFormat} to allow pluggable/additional formatting
  * options for embedded format elements.  Client code should specify a registry
- * of {@code FormatFactory} instances associated with {@code String}
+ * of {@link FormatFactory} instances associated with {@link String}
  * format names.  This registry will be consulted when the format elements are
  * parsed from the message pattern.  In this way custom patterns can be specified,
  * and the formats supported by {@code java.text.MessageFormat} can be overridden
@@ -45,24 +45,24 @@ import org.apache.commons.lang3.Validate;
  * <p>
  * <i>format-name</i> and <i>format-style</i> values are trimmed of surrounding whitespace
  * in the manner of {@code java.text.MessageFormat}.  If <i>format-name</i> denotes
- * {@code FormatFactory formatFactoryInstance} in {@code registry}, a {@code Format}
+ * {@code FormatFactory formatFactoryInstance} in {@code registry}, a {@link Format}
  * matching <i>format-name</i> and <i>format-style</i> is requested from
- * {@code formatFactoryInstance}.  If this is successful, the {@code Format}
+ * {@code formatFactoryInstance}.  If this is successful, the {@link Format}
  * found is used for this format element.
  * </p>
  *
  * <p><b>NOTICE:</b> The various subformat mutator methods are considered unnecessary; they exist on the parent
  * class to allow the type of customization which it is the job of this class to provide in
  * a configurable fashion.  These methods have thus been disabled and will throw
- * {@code UnsupportedOperationException} if called.
+ * {@link UnsupportedOperationException} if called.
  * </p>
  *
  * <p>Limitations inherited from {@code java.text.MessageFormat}:</p>
  * <ul>
  * <li>When using "choice" subformats, support for nested formatting instructions is limited
  *     to that provided by the base class.</li>
- * <li>Thread-safety of {@code Format}s, including {@code MessageFormat} and thus
- *     {@code ExtendedMessageFormat}, is not guaranteed.</li>
+ * <li>Thread-safety of {@link Format}s, including {@link MessageFormat} and thus
+ *     {@link ExtendedMessageFormat}, is not guaranteed.</li>
  * </ul>
  *
  * @since 2.4
diff --git a/src/main/java/org/apache/commons/lang3/text/FormatFactory.java b/src/main/java/org/apache/commons/lang3/text/FormatFactory.java
index 88a07ab8e..ed5e8c3e6 100644
--- a/src/main/java/org/apache/commons/lang3/text/FormatFactory.java
+++ b/src/main/java/org/apache/commons/lang3/text/FormatFactory.java
@@ -35,7 +35,7 @@ public interface FormatFactory {
      *
      * @param name The format type name
      * @param arguments Arguments used to create the format instance. This allows the
-     *                  {@code FormatFactory} to implement the "format style"
+     *                  {@link FormatFactory} to implement the "format style"
      *                  concept from {@code java.text.MessageFormat}.
      * @param locale The locale, may be null
      * @return The format instance
diff --git a/src/main/java/org/apache/commons/lang3/text/FormattableUtils.java b/src/main/java/org/apache/commons/lang3/text/FormattableUtils.java
index b130b7a83..c56679f77 100644
--- a/src/main/java/org/apache/commons/lang3/text/FormattableUtils.java
+++ b/src/main/java/org/apache/commons/lang3/text/FormattableUtils.java
@@ -26,10 +26,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.Validate;
 
 /**
- * <p>Provides utilities for working with the {@code Formattable} interface.</p>
+ * <p>Provides utilities for working with the {@link Formattable} interface.</p>
  *
  * <p>The {@link Formattable} interface provides basic control over formatting
- * when using a {@code Formatter}. It is primarily concerned with numeric precision
+ * when using a {@link Formatter}. It is primarily concerned with numeric precision
  * and padding, and is not designed to allow generalised alternate formats.</p>
  *
  * @since 3.0
@@ -46,7 +46,7 @@ public class FormattableUtils {
     private static final String SIMPLEST_FORMAT = "%s";
 
     /**
-     * <p>{@code FormattableUtils} instances should NOT be constructed in
+     * <p>{@link FormattableUtils} instances should NOT be constructed in
      * standard programming. Instead, the methods of the class should be invoked
      * statically.</p>
      *
@@ -58,7 +58,7 @@ public class FormattableUtils {
 
     /**
      * Gets the default formatted representation of the specified
-     * {@code Formattable}.
+     * {@link Formattable}.
      *
      * @param formattable  the instance to convert to a string, not null
      * @return the resulting string, not null
@@ -68,15 +68,15 @@ public class FormattableUtils {
     }
 
     /**
-     * Handles the common {@code Formattable} operations of truncate-pad-append,
+     * Handles the common {@link Formattable} operations of truncate-pad-append,
      * with no ellipsis on precision overflow, and padding width underflow with
      * spaces.
      *
      * @param seq  the string to handle, not null
      * @param formatter  the destination formatter, not null
-     * @param flags  the flags for formatting, see {@code Formattable}
-     * @param width  the width of the output, see {@code Formattable}
-     * @param precision  the precision of the output, see {@code Formattable}
+     * @param flags  the flags for formatting, see {@link Formattable}
+     * @param width  the width of the output, see {@link Formattable}
+     * @param precision  the precision of the output, see {@link Formattable}
      * @return the {@code formatter} instance, not null
      */
     public static Formatter append(final CharSequence seq, final Formatter formatter, final int flags, final int width,
@@ -90,9 +90,9 @@ public class FormattableUtils {
      *
      * @param seq  the string to handle, not null
      * @param formatter  the destination formatter, not null
-     * @param flags  the flags for formatting, see {@code Formattable}
-     * @param width  the width of the output, see {@code Formattable}
-     * @param precision  the precision of the output, see {@code Formattable}
+     * @param flags  the flags for formatting, see {@link Formattable}
+     * @param width  the width of the output, see {@link Formattable}
+     * @param precision  the precision of the output, see {@link Formattable}
      * @param padChar  the pad character to use
      * @return the {@code formatter} instance, not null
      */
@@ -107,9 +107,9 @@ public class FormattableUtils {
      *
      * @param seq  the string to handle, not null
      * @param formatter  the destination formatter, not null
-     * @param flags  the flags for formatting, see {@code Formattable}
-     * @param width  the width of the output, see {@code Formattable}
-     * @param precision  the precision of the output, see {@code Formattable}
+     * @param flags  the flags for formatting, see {@link Formattable}
+     * @param width  the width of the output, see {@link Formattable}
+     * @param precision  the precision of the output, see {@link Formattable}
      * @param ellipsis  the ellipsis to use when precision dictates truncation, null or
      *  empty causes a hard truncation
      * @return the {@code formatter} instance, not null
@@ -124,9 +124,9 @@ public class FormattableUtils {
      *
      * @param seq  the string to handle, not null
      * @param formatter  the destination formatter, not null
-     * @param flags  the flags for formatting, see {@code Formattable}
-     * @param width  the width of the output, see {@code Formattable}
-     * @param precision  the precision of the output, see {@code Formattable}
+     * @param flags  the flags for formatting, see {@link Formattable}
+     * @param width  the width of the output, see {@link Formattable}
+     * @param precision  the precision of the output, see {@link Formattable}
      * @param padChar  the pad character to use
      * @param ellipsis  the ellipsis to use when precision dictates truncation, null or
      *  empty causes a hard truncation
diff --git a/src/main/java/org/apache/commons/lang3/text/StrBuilder.java b/src/main/java/org/apache/commons/lang3/text/StrBuilder.java
index 0becdf394..a63f762ba 100644
--- a/src/main/java/org/apache/commons/lang3/text/StrBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/text/StrBuilder.java
@@ -2704,7 +2704,7 @@ public class StrBuilder implements CharSequence, Appendable, Serializable, Build
      * using any standard method that expects a Reader.
      * </p>
      * <p>
-     * To use, simply create a {@code StrBuilder}, populate it with
+     * To use, simply create a {@link StrBuilder}, populate it with
      * data, call {@code asReader}, and then read away.
      * </p>
      * <p>
@@ -2731,9 +2731,9 @@ public class StrBuilder implements CharSequence, Appendable, Serializable, Build
      * using any standard method that takes a Writer.
      * </p>
      * <p>
-     * To use, simply create a {@code StrBuilder},
+     * To use, simply create a {@link StrBuilder},
      * call {@code asWriter}, and populate away. The data is available
-     * at any time using the methods of the {@code StrBuilder}.
+     * at any time using the methods of the {@link StrBuilder}.
      * </p>
      * <p>
      * The internal character array is shared between the builder and the writer.
@@ -2753,7 +2753,7 @@ public class StrBuilder implements CharSequence, Appendable, Serializable, Build
     }
 
     /**
-     * Appends current contents of this {@code StrBuilder} to the
+     * Appends current contents of this {@link StrBuilder} to the
      * provided {@link Appendable}.
      * <p>
      * This method tries to avoid doing any extra copies of contents.
diff --git a/src/main/java/org/apache/commons/lang3/text/StrMatcher.java b/src/main/java/org/apache/commons/lang3/text/StrMatcher.java
index 8d903a9da..bada208f4 100644
--- a/src/main/java/org/apache/commons/lang3/text/StrMatcher.java
+++ b/src/main/java/org/apache/commons/lang3/text/StrMatcher.java
@@ -390,7 +390,7 @@ public abstract class StrMatcher {
     static final class NoMatcher extends StrMatcher {
 
         /**
-         * Constructs a new instance of {@code NoMatcher}.
+         * Constructs a new instance of {@link NoMatcher}.
          */
         NoMatcher() {
         }
@@ -416,7 +416,7 @@ public abstract class StrMatcher {
     static final class TrimMatcher extends StrMatcher {
 
         /**
-         * Constructs a new instance of {@code TrimMatcher}.
+         * Constructs a new instance of {@link TrimMatcher}.
          */
         TrimMatcher() {
         }
diff --git a/src/main/java/org/apache/commons/lang3/text/StrSubstitutor.java b/src/main/java/org/apache/commons/lang3/text/StrSubstitutor.java
index 8b9c62de1..1f8c0a24f 100644
--- a/src/main/java/org/apache/commons/lang3/text/StrSubstitutor.java
+++ b/src/main/java/org/apache/commons/lang3/text/StrSubstitutor.java
@@ -130,7 +130,7 @@ import org.apache.commons.lang3.StringUtils;
  * ${jre-${java.specification.version}}
  * </pre>
  * <p>
- * {@code StrSubstitutor} supports this recursive substitution in variable
+ * {@link StrSubstitutor} supports this recursive substitution in variable
  * names, but it has to be enabled explicitly by setting the
  * {@link #setEnableSubstitutionInVariables(boolean) enableSubstitutionInVariables}
  * property to <b>true</b>.
diff --git a/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java b/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java
index 4f2f97d71..f1f9331ed 100644
--- a/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java
+++ b/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -33,8 +34,8 @@ import org.apache.commons.lang3.StringUtils;
  * This class can split a String into many smaller strings. It aims
  * to do a similar job to {@link java.util.StringTokenizer StringTokenizer},
  * however it offers much more control and flexibility including implementing
- * the {@code ListIterator} interface. By default, it is set up
- * like {@code StringTokenizer}.
+ * the {@link ListIterator} interface. By default, it is set up
+ * like {@link StringTokenizer}.
  * </p>
  * <p>
  * The input String is split into a number of <i>tokens</i>.
@@ -625,7 +626,7 @@ public class StrTokenizer implements ListIterator<String>, Cloneable {
      * multiple strings. It is also be possible to filter the results.
      * </p>
      * <p>
-     * {@code StrTokenizer} will always pass a zero offset and a count
+     * {@link StrTokenizer} will always pass a zero offset and a count
      * equal to the length of the array to this method, however a subclass
      * may pass other values, or even an entirely different array.
      * </p>
diff --git a/src/main/java/org/apache/commons/lang3/text/WordUtils.java b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
index 982721041..dae3a8222 100644
--- a/src/main/java/org/apache/commons/lang3/text/WordUtils.java
+++ b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
@@ -38,7 +38,7 @@ import org.apache.commons.lang3.StringUtils;
 public class WordUtils {
 
     /**
-     * <p>{@code WordUtils} instances should NOT be constructed in
+     * <p>{@link WordUtils} instances should NOT be constructed in
      * standard programming. Instead, the class should be used as
      * {@code WordUtils.wrap("foo bar", 20);}.</p>
      *
diff --git a/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java b/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java
index 0418adaaa..3c30ff064 100644
--- a/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java
+++ b/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java
@@ -126,11 +126,11 @@ public abstract class CharSequenceTranslator {
     }
 
     /**
-     * <p>Returns an upper case hexadecimal {@code String} for the given
+     * <p>Returns an upper case hexadecimal {@link String} for the given
      * character.</p>
      *
      * @param codePoint The code point to convert.
-     * @return An upper case hexadecimal {@code String}
+     * @return An upper case hexadecimal {@link String}
      */
     public static String hex(final int codePoint) {
         return Integer.toHexString(codePoint).toUpperCase(Locale.ENGLISH);
diff --git a/src/main/java/org/apache/commons/lang3/text/translate/JavaUnicodeEscaper.java b/src/main/java/org/apache/commons/lang3/text/translate/JavaUnicodeEscaper.java
index 28f662ea9..d418fd5bd 100644
--- a/src/main/java/org/apache/commons/lang3/text/translate/JavaUnicodeEscaper.java
+++ b/src/main/java/org/apache/commons/lang3/text/translate/JavaUnicodeEscaper.java
@@ -29,12 +29,12 @@ public class JavaUnicodeEscaper extends UnicodeEscaper {
 
     /**
      * <p>
-     * Constructs a {@code JavaUnicodeEscaper} above the specified value (exclusive).
+     * Constructs a {@link JavaUnicodeEscaper} above the specified value (exclusive).
      * </p>
      *
      * @param codePoint
      *            above which to escape
-     * @return the newly created {@code UnicodeEscaper} instance
+     * @return the newly created {@link UnicodeEscaper} instance
      */
     public static JavaUnicodeEscaper above(final int codePoint) {
         return outsideOf(0, codePoint);
@@ -42,12 +42,12 @@ public class JavaUnicodeEscaper extends UnicodeEscaper {
 
     /**
      * <p>
-     * Constructs a {@code JavaUnicodeEscaper} below the specified value (exclusive).
+     * Constructs a {@link JavaUnicodeEscaper} below the specified value (exclusive).
      * </p>
      *
      * @param codePoint
      *            below which to escape
-     * @return the newly created {@code UnicodeEscaper} instance
+     * @return the newly created {@link UnicodeEscaper} instance
      */
     public static JavaUnicodeEscaper below(final int codePoint) {
         return outsideOf(codePoint, Integer.MAX_VALUE);
@@ -55,14 +55,14 @@ public class JavaUnicodeEscaper extends UnicodeEscaper {
 
     /**
      * <p>
-     * Constructs a {@code JavaUnicodeEscaper} between the specified values (inclusive).
+     * Constructs a {@link JavaUnicodeEscaper} between the specified values (inclusive).
      * </p>
      *
      * @param codePointLow
      *            above which to escape
      * @param codePointHigh
      *            below which to escape
-     * @return the newly created {@code UnicodeEscaper} instance
+     * @return the newly created {@link UnicodeEscaper} instance
      */
     public static JavaUnicodeEscaper between(final int codePointLow, final int codePointHigh) {
         return new JavaUnicodeEscaper(codePointLow, codePointHigh, true);
@@ -70,14 +70,14 @@ public class JavaUnicodeEscaper extends UnicodeEscaper {
 
     /**
      * <p>
-     * Constructs a {@code JavaUnicodeEscaper} outside of the specified values (exclusive).
+     * Constructs a {@link JavaUnicodeEscaper} outside of the specified values (exclusive).
      * </p>
      *
      * @param codePointLow
      *            below which to escape
      * @param codePointHigh
      *            above which to escape
-     * @return the newly created {@code UnicodeEscaper} instance
+     * @return the newly created {@link UnicodeEscaper} instance
      */
     public static JavaUnicodeEscaper outsideOf(final int codePointLow, final int codePointHigh) {
         return new JavaUnicodeEscaper(codePointLow, codePointHigh, false);
@@ -85,7 +85,7 @@ public class JavaUnicodeEscaper extends UnicodeEscaper {
... 1525 lines suppressed ...