docs: added JavaDoc

This commit is contained in:
zihluwang
2024-06-30 13:10:38 +08:00
parent da23cf1a83
commit 23e9cc8109
15 changed files with 216 additions and 238 deletions
@@ -23,15 +23,14 @@ import java.util.Base64;
import java.util.Objects;
/**
* The {@link Base64Util} class provides static methods to encode and decode
* strings with Base64 encoding. It utilizes the {@link Base64} class from the
* Java standard library for performing the encoding and decoding operations.
* This utility class offers convenient methods to encode and decode strings
* with different character sets.
* The {@link Base64Util} class provides static methods to encode and decode strings with Base64
* encoding. It utilizes the {@link Base64} class from the Java standard library for performing the
* encoding and decoding operations. This utility class offers convenient methods to encode and
* decode strings with different character sets.
* <p>
* This class is designed as a final class with a private constructor to
* prevent instantiation. All methods in this class are static, allowing easy
* access to the Base64 encoding and decoding functionality.
* This class is designed as a final class with a private constructor to prevent instantiation.
* All methods in this class are static, allowing easy access to the Base64 encoding and
* decoding functionality.
* <p>
* Example usage:
* <pre>
@@ -46,9 +45,9 @@ import java.util.Objects;
* System.out.println("Decoded string: " + decoded);
* </pre>
* <p>
* <b>Note:</b> This utility class uses the default charset (UTF-8) if no
* specific charset is provided. It is recommended to specify the charset
* explicitly to ensure consistent encoding and decoding.
* <b>Note:</b> This utility class uses the default charset (UTF-8) if no specific charset is
* provided. It is recommended to specify the charset explicitly to ensure consistent
* encoding and decoding.
*
* @author Zihlu Wang
* @version 1.1.0
@@ -23,14 +23,13 @@ import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
/**
* The {@link BranchUtil} class provides static methods to simplify conditional
* logic in Java development by leveraging lambda expressions. It offers
* convenient methods to replace verbose {@code if...else} statements with more
* concise and expressive functional constructs.
* The {@link BranchUtil} class provides static methods to simplify conditional logic in Java
* development by leveraging lambda expressions. It offers convenient methods to replace verbose
* {@code if...else} statements with more concise and expressive functional constructs.
* <p>
* Developers can use methods in this utility class to streamline their code,
* enhance readability, and promote a more functional style of programming when
* dealing with branching logic and conditional statements.
* Developers can use methods in this utility class to streamline their code, enhance readability,
* and promote a more functional style of programming when dealing with branching logic and
* conditional statements.
* <p>
* <b>Example:</b>
* <pre>
@@ -64,11 +63,11 @@ import java.util.function.Supplier;
* </pre>
* <p>
* <b>Note:</b>
* The {@link #and(Boolean...)} and {@link #or(Boolean...)} methods accept any
* number of boolean expressions.
* The {@link #and(Boolean...)} and {@link #or(Boolean...)} methods accept any number of boolean
* expressions.
*
* @param <T> the type of the result to be handled by the methods
* @author Zihlu Wang
* @author zihluwang
* @version 1.1.0
* @see java.util.function.Supplier
* @see java.util.function.BooleanSupplier
@@ -87,13 +86,12 @@ public final class BranchUtil<T> {
}
/**
* Creates a {@code BranchUtil} instance to evaluate a logical OR operation
* on the provided boolean expressions.
* Creates a {@code BranchUtil} instance to evaluate a logical OR operation on the provided
* boolean expressions.
*
* @param booleans the boolean expressions to be evaluated
* @param <T> the type of the result to be handled by the methods
* @return a {@code BranchUtil} instance representing the result of the
* logical OR operation
* @return a {@code BranchUtil} instance representing the result of the logical OR operation
*/
public static <T> BranchUtil<T> or(Boolean... booleans) {
var result = Arrays.stream(booleans)
@@ -103,13 +101,12 @@ public final class BranchUtil<T> {
}
/**
* Creates a {@code BranchUtil} instance to evaluate a logical AND
* operation on the provided boolean expressions.
* Creates a {@code BranchUtil} instance to evaluate a logical AND operation on the provided
* boolean expressions.
*
* @param booleans the boolean expressions to be evaluated
* @param <T> the type of the result to be handled by the methods
* @return a {@code BranchUtil} instance representing the result of the
* logical AND operation
* @return a {@code BranchUtil} instance representing the result of the logical AND operation
*/
public static <T> BranchUtil<T> and(Boolean... booleans) {
var result = Arrays.stream(booleans)
@@ -119,12 +116,11 @@ public final class BranchUtil<T> {
}
/**
* Creates a {@code BranchUtil} instance to evaluate a logical OR operation
* on the provided boolean suppliers.
* Creates a {@code BranchUtil} instance to evaluate a logical OR operation on the provided
* boolean suppliers.
*
* @param booleanSuppliers the boolean suppliers to be evaluated
* @param <T> the type of the result to be handled by the
* methods
* @param <T> the type of the result to be handled by the methods
* @return a {@code BranchUtil} instance representing the result of the
* logical OR operation
*/
@@ -136,12 +132,11 @@ public final class BranchUtil<T> {
}
/**
* Creates a {@code BranchUtil} instance to evaluate a logical AND
* operation on the provided boolean suppliers.
* Creates a {@code BranchUtil} instance to evaluate a logical AND operation on the provided
* boolean suppliers.
*
* @param booleanSuppliers the boolean suppliers to be evaluated
* @param <T> the type of the result to be handled by the
* methods
* @param <T> the type of the result to be handled by the methods
* @return a {@code BranchUtil} instance representing the result of the
* logical AND operation
*/
@@ -153,22 +148,18 @@ public final class BranchUtil<T> {
}
/**
* Handles the result of the boolean expressions by executing the
* appropriate handler based on the result.
* Handles the result of the boolean expressions by executing the appropriate handler based
* on the result.
* <p>
* If the result is {@code true}, the {@code ifHandler} is executed. If the
* result is {@code false} and an {@code elseHandler} is provided, it is
* executed.
* If the result is {@code true}, the {@code ifHandler} is executed. If the result is
* {@code false} and an {@code elseHandler} is provided, it is executed.
* <p>
* Returns the result of the executed handler.
*
* @param ifHandler the handler to be executed if the result is
* {@code true}
* @param elseHandler the handler to be executed if the result is
* {@code false} (optional)
* @return the result of the executed handler, or {@code null} if no
* {@code elseHandler} is provided and the result of the evaluation is
* {@code false}
* @param ifHandler the handler to be executed if the result is {@code true}
* @param elseHandler the handler to be executed if the result is {@code false} (optional)
* @return the result of the executed handler, or {@code null} if no {@code elseHandler} is
* provided and the result of the evaluation is {@code false}
*/
public T handle(Supplier<T> ifHandler, Supplier<T> elseHandler) {
if (this.result && Objects.nonNull(ifHandler)) {
@@ -183,32 +174,28 @@ public final class BranchUtil<T> {
}
/**
* Handles the result of the boolean expressions by executing the provided
* handler if the result is {@code true}.
* Handles the result of the boolean expressions by executing the provided handler if the
* result is {@code true}.
* <p>
* Returns the result of the executed handler.
*
* @param ifHandler the handler to be executed if the result is
* {@code true}
* @return the result of the executed handler, or {@code null} if result of
* evaluation is {@code false}
* @param ifHandler the handler to be executed if the result is {@code true}
* @return the result of the executed handler, or {@code null} if result of evaluation is
* {@code false}
*/
public T handle(Supplier<T> ifHandler) {
return handle(ifHandler, null);
}
/**
* Handles the result of the boolean expressions by executing the
* appropriate handler based on the result.
* Handles the result of the boolean expressions by executing the appropriate handler based
* on the result.
* <p>
* If the result is {@code true}, the {@code ifHandler} is executed. If the
* result is {@code false} and an {@code elseHandler} is provided, it is
* executed.
* If the result is {@code true}, the {@code ifHandler} is executed. If the result is
* {@code false} and an {@code elseHandler} is provided, it is executed.
*
* @param ifHandler the handler to be executed if the result is
* {@code true}
* @param elseHandler the handler to be executed if the result is
* {@code false} (optional)
* @param ifHandler the handler to be executed if the result is {@code true}
* @param elseHandler the handler to be executed if the result is {@code false} (optional)
*/
public void handle(Runnable ifHandler, Runnable elseHandler) {
if (this.result && Objects.nonNull(ifHandler)) {
@@ -224,11 +211,10 @@ public final class BranchUtil<T> {
}
/**
* Handles the result of the boolean expressions by executing the provided
* handler if the result is {@code true}.
* Handles the result of the boolean expressions by executing the provided handler if the
* result is {@code true}.
*
* @param ifHandler the handler to be executed if the result is
* {@code true}
* @param ifHandler the handler to be executed if the result is {@code true}
*/
public void handle(Runnable ifHandler) {
handle(ifHandler, null);
@@ -26,12 +26,11 @@ import java.util.function.BiFunction;
import java.util.function.Function;
/**
* The {@code ChainedCalcUtil} class provides a convenient way to perform
* chained high-precision calculations using {@link BigDecimal}. It allows
* users to perform mathematical operations such as addition, subtraction,
* multiplication, and division with customisable precision and scale. By using
* this utility class, developers can achieve accurate results and avoid
* precision loss in their calculations.
* The {@code ChainedCalcUtil} class provides a convenient way to perform chained high-precision
* calculations using {@link BigDecimal}. It allows users to perform mathematical operations such
* as addition, subtraction, multiplication, and division with customisable precision and scale.
* By using this utility class, developers can achieve accurate results and avoid precision loss
* in their calculations.
* <p>
* <b>Usage:</b>
* <pre>
@@ -82,10 +81,9 @@ import java.util.function.Function;
* {@code ChainedCalcUtil} class.
* <p>
* <b>Note:</b>
* The {@code ChainedCalcUtil} class internally uses {@link BigDecimal} to
* handle high-precision calculations. It is important to note that {@link
* BigDecimal} operations can be memory-intensive and may have performance
* implications for extremely large numbers or complex calculations.
* The {@code ChainedCalcUtil} class internally uses {@link BigDecimal} to handle high-precision
* calculations. It is important to note that {@link BigDecimal} operations can be memory-intensive
* and may have performance implications for extremely large numbers or complex calculations.
*
* @author sunzsh
* @version 1.1.0
@@ -96,8 +94,7 @@ import java.util.function.Function;
public final class ChainedCalcUtil {
/**
* Creates a {@code ChainedCalcUtil} instance with the specified initial
* value.
* Creates a {@code ChainedCalcUtil} instance with the specified initial value.
*
* @param value the initial value for the calculation
*/
@@ -126,8 +123,7 @@ public final class ChainedCalcUtil {
}
/**
* Adds the specified value to the current value with a specified scale
* before the operation.
* Adds the specified value to the current value with a specified scale before the operation.
*
* @param other the value to be added
* @param beforeOperateScale the scale to be applied before the operation
@@ -148,8 +144,8 @@ public final class ChainedCalcUtil {
}
/**
* Subtracts the specified value from the current value with a specified
* scale before the operation.
* Subtracts the specified value from the current value with a specified scale before
* the operation.
*
* @param other the value to be subtracted
* @param beforeOperateScale the scale to be applied before the operation
@@ -170,8 +166,8 @@ public final class ChainedCalcUtil {
}
/**
* Multiplies the current value by the specified value with a specified
* scale before the operation.
* Multiplies the current value by the specified value with a specified scale before
* the operation.
*
* @param other the value to be multiplied by
* @param beforeOperateScale the scale to be applied before the operation
@@ -192,8 +188,7 @@ public final class ChainedCalcUtil {
}
/**
* Divides the current value by the specified value with a specified scale
* before the operation.
* Divides the current value by the specified value with a specified scale before the operation.
*
* @param other the value to divide by
* @param beforeOperateScale the scale to be applied before the operation
@@ -216,8 +211,8 @@ public final class ChainedCalcUtil {
}
/**
* Divides the current value by the specified value with a specified scale
* and a scale applied before the operation.
* Divides the current value by the specified value with a specified scale and a scale applied
* before the operation.
*
* @param other the value to divide by
* @param scale the scale for the result
@@ -225,7 +220,9 @@ public final class ChainedCalcUtil {
* @return a {@code ChainedCalcUtil} instance with the updated value
*/
public ChainedCalcUtil divideWithScale(Number other, Integer scale, Integer beforeOperateScale) {
return baseOperator(otherValue -> this.value.divide(otherValue, scale, RoundingMode.HALF_UP), other, beforeOperateScale);
return baseOperator((otherValue) ->
this.value.divide(otherValue, scale, RoundingMode.HALF_UP),
other, beforeOperateScale);
}
/**
@@ -276,8 +273,7 @@ public final class ChainedCalcUtil {
}
/**
* Applies the specified operator function to the current value and another
* value.
* Applies the specified operator function to the current value and another value.
*
* @param operator the operator function to apply
* @param otherValue the value to apply the operator with
@@ -288,8 +284,8 @@ public final class ChainedCalcUtil {
}
/**
* Applies the specified operator function to the current value and another
* value with a specified scale before the operation.
* Applies the specified operator function to the current value and another value with a
* specified scale before the operation.
*
* @param operator the operator function to apply
* @param other the value to apply the operator with
@@ -298,7 +294,10 @@ public final class ChainedCalcUtil {
* @return a ChainedCalcUtil instance with the updated value
*/
private ChainedCalcUtil operator(BiFunction<BigDecimal, BigDecimal, BigDecimal> operator, Object other, Integer beforeOperateScale) {
return baseOperator((otherValue) -> operator.apply(this.value, otherValue), other, beforeOperateScale);
return baseOperator((otherValue) ->
operator.apply(this.value, otherValue),
other,
beforeOperateScale);
}
/**
@@ -328,8 +327,7 @@ public final class ChainedCalcUtil {
* Converts the specified value to a {@link BigDecimal}.
*
* @param value the value to convert
* @param scale the scale to apply to the resulting BigDecimal, or null if
* not applicable
* @param scale the scale to apply to the resulting BigDecimal, or null if not applicable
* @return the converted BigDecimal value
*/
private BigDecimal convertBigDecimal(Object value, Integer scale) {
@@ -25,10 +25,9 @@ import java.util.Objects;
import java.util.Optional;
/**
* The {@code HashUtil} class provides convenient methods for calculating
* various hash functions on strings, including MD2, MD5, SHA-1, SHA-224,
* SHA-256, SHA-384, and SHA-512. It allows developers to easily obtain the
* hash value of a given string using different algorithms.
* The {@code HashUtil} class provides convenient methods for calculating various hash functions on
* strings, including MD2, MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512. It allows developers
* to easily obtain the hash value of a given string using different algorithms.
* <p>
* Example usage:
* <pre>
@@ -53,14 +52,14 @@ import java.util.Optional;
* // Perform SHA-512 hash operation
* String sha512Hash = HashUtil.sha512("someString");
* </pre>
* The above examples demonstrate how to use the {@code HashUtil} class to
* calculate hash values for a given string using different algorithms.
* The above examples demonstrate how to use the {@code HashUtil} class to calculate hash values
* for a given string using different algorithms.
* <p>
* <b>Note:</b>
* The hash functions provided by the HashUtil class are one-way hash
* functions, meaning the original data cannot be retrieved from the hash
* value. These hash functions are commonly used for data integrity checks and
* password storage, but they should not be used for encryption purposes.
* The hash functions provided by the HashUtil class are one-way hash functions, meaning the
* original data cannot be retrieved from the hash value. These hash functions are commonly used
* for data integrity checks and password storage, but they should not be used for
* encryption purposes.
*
* @author Zihlu Wang
* @version 1.1.0
@@ -70,12 +69,10 @@ import java.util.Optional;
public final class HashUtil {
/**
* Calculates the MD2 hash value of the specified string using the given
* charset.
* Calculates the MD2 hash value of the specified string using the given charset.
*
* @param value the string to calculate with the MD2 algorithm
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the MD2 hash value as a hexadecimal string
*/
public static String md2(String value, Charset charset) {
@@ -84,8 +81,7 @@ public final class HashUtil {
}
/**
* Calculates the MD2 hash value of the specified string using the UTF-8
* charset.
* Calculates the MD2 hash value of the specified string using the UTF-8 charset.
*
* @param value the string to calculate with the MD2 algorithm
* @return the MD2 hash value as a hexadecimal string
@@ -95,12 +91,10 @@ public final class HashUtil {
}
/**
* Calculates the MD5 hash value of the specified string using the given
* charset.
* Calculates the MD5 hash value of the specified string using the given charset.
*
* @param value the string to calculate with the MD5 algorithm
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the MD5 hash value as a hexadecimal string
*/
public static String md5(String value, Charset charset) {
@@ -109,8 +103,7 @@ public final class HashUtil {
}
/**
* Calculates the MD5 hash value of the specified string using the UTF-8
* charset.
* Calculates the MD5 hash value of the specified string using the UTF-8 charset.
*
* @param value the string to calculate with the MD5 algorithm
* @return the MD5 hash value as a hexadecimal string
@@ -120,12 +113,10 @@ public final class HashUtil {
}
/**
* Calculates the SHA-1 hash value of the specified string using the given
* charset.
* Calculates the SHA-1 hash value of the specified string using the given charset.
*
* @param value the string to calculate with the SHA-1 algorithm
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the SHA-1 hash value as a hexadecimal string
*/
public static String sha1(String value, Charset charset) {
@@ -134,8 +125,7 @@ public final class HashUtil {
}
/**
* Calculates the SHA-1 hash value of the specified string using the UTF-8
* charset.
* Calculates the SHA-1 hash value of the specified string using the UTF-8 charset.
*
* @param value the string to calculate with the SHA-1 algorithm
* @return the SHA-1 hash value as a hexadecimal string
@@ -145,12 +135,10 @@ public final class HashUtil {
}
/**
* Calculates the SHA-224 hash value of the specified string using the
* given charset.
* Calculates the SHA-224 hash value of the specified string using the given charset.
*
* @param value the string to calculate with the SHA-225 algorithm
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the SHA-224 hash value as a hexadecimal string
*/
public static String sha224(String value, Charset charset) {
@@ -174,8 +162,7 @@ public final class HashUtil {
* given charset.
*
* @param value the string to calculate with the SHA-256 algorithm
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the SHA-256 hash value as a hexadecimal string
*/
public static String sha256(String value, Charset charset) {
@@ -184,8 +171,7 @@ public final class HashUtil {
}
/**
* Calculates the SHA-256 hash value of the specified string using the
* UTF-8 charset.
* Calculates the SHA-256 hash value of the specified string using the UTF-8 charset.
*
* @param value the string to calculate with the SHA-256 algorithm
* @return the SHA-256 hash value as a hexadecimal string
@@ -195,12 +181,10 @@ public final class HashUtil {
}
/**
* Calculates the SHA-384 hash value of the specified string using the
* given charset.
* Calculates the SHA-384 hash value of the specified string using the given charset.
*
* @param value the string to calculate with the SHA-384 algorithm
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the SHA-384 hash value as a hexadecimal string
*/
public static String sha384(String value, Charset charset) {
@@ -209,8 +193,7 @@ public final class HashUtil {
}
/**
* Calculates the SHA-384 hash value of the specified string using the
* UTF-8 charset.
* Calculates the SHA-384 hash value of the specified string using the UTF-8 charset.
*
* @param value the string to calculate with the SHA-384 algorithm
* @return the SHA-384 hash value as a hexadecimal string
@@ -220,12 +203,10 @@ public final class HashUtil {
}
/**
* Calculates the SHA-512 hash value of the specified string using the
* given charset.
* Calculates the SHA-512 hash value of the specified string using the given charset.
*
* @param value the string to calculate with the SHA-512 algorithm
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the SHA-512 hash value as a hexadecimal string
*/
public static String sha512(String value, Charset charset) {
@@ -234,8 +215,7 @@ public final class HashUtil {
}
/**
* Calculates the SHA-512 hash value of the specified string using the
* UTF-8 charset.
* Calculates the SHA-512 hash value of the specified string using the UTF-8 charset.
*
* @param value the string to calculate with the SHA-512 algorithm
* @return the SHA-512 hash value as a hexadecimal string
@@ -256,12 +236,11 @@ public final class HashUtil {
*
* @param method the hash algorithm to use
* @param value the string to calculate the hash value for
* @param charset the charset to use for encoding the string (default is
* UTF-8 if null)
* @return the hash value as a hexadecimal string, or an empty string if
* the algorithm is not available
* @throws RuntimeException if an unknown algorithm name is provided
* (should not occur under controlled usage)
* @param charset the charset to use for encoding the string (default is UTF-8 if null)
* @return the hash value as a hexadecimal string, or an empty string if the algorithm is
* not available
* @throws RuntimeException if an unknown algorithm name is provided (should not occur under
* controlled usage)
*/
private static String hash(String method, String value, Charset charset) {
try {
@@ -28,7 +28,7 @@ import java.util.Optional;
* to objects.
* <p>
* Note: Since version 1.4.2, this util class removed reflection API and transferred to a safer API.
* Please see <a href="">documentation</a> for more information.
* Please see documentation for more information.
*
* @author Zihlu Wang
* @version 1.4.2
@@ -41,7 +41,9 @@ public final class MapUtil {
/**
* Converts an object to a map by mapping the field names to their corresponding values.
*
* @param entity the object to be converted to a map
* @param <T> the type of the object
* @param entity the object to be converted to a map
* @param adapters adapts the entity for mapping to a map
* @return a map representing the fields and their values of the object
*/
public static <T> Map<String, Object> objectToMap(T entity,
@@ -73,6 +75,7 @@ public final class MapUtil {
/**
* Retrieves the value of a field from an object using reflection.
*
* @param <E> the type of the entity
* @param <T> the type of the field value
* @param entity the object from which to retrieve the field value
* @param adapter the adapter to execute the getter
@@ -86,6 +89,8 @@ public final class MapUtil {
/**
* Sets the value of a field in an object using reflection.
*
* @param <E> the type of the entity
* @param <T> the type of the field value
* @param entity the object in which to set the field value
* @param adapter the adapter to execute the setter
* @param fieldValue the value to be set
@@ -24,11 +24,10 @@ import java.util.HashMap;
import java.util.Map;
/**
* {@code MapUtil} is a utility class that provides methods for converting
* objects to maps and maps to objects.
* {@code MapUtil} is a utility class that provides methods for converting objects to maps and
* maps to objects.
* <p>
* It also provides methods for getting and setting field values using
* reflection.
* It also provides methods for getting and setting field values using reflection.
*
* @author zihluwang
* @version 1.4.2
@@ -38,13 +37,11 @@ import java.util.Map;
public final class ReflectMapUtil {
/**
* Converts an object to a map by mapping the field names to their
* corresponding values.
* Converts an object to a map by mapping the field names to their corresponding values.
*
* @param obj the object to be converted to a map
* @return a map representing the fields and their values of the object
* @throws IllegalAccessException if an error occurs while accessing the
* fields of the object
* @throws IllegalAccessException if an error occurs while accessing the fields of the object
*/
public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException {
if (obj == null) {
@@ -66,24 +63,21 @@ public final class ReflectMapUtil {
}
/**
* Converts a map to an object of the specified type by setting the field
* values using the map entries.
* Converts a map to an object of the specified type by setting the field values using the
* map entries.
*
* @param map the map representing the fields and their values
* @param requiredType the class of the object to be created
* @param <T> the type of the object to be created
* @return an object of the specified type with the field values set from
* the map
* @throws NoSuchMethodException if the constructor of the required
* type is not found
* @throws InvocationTargetException if an error occurs while invoking the
* constructor
* @throws InstantiationException if the required type is abstract or an
* interface
* @throws IllegalAccessException if an error occurs while accessing the
* fields of the object
* @return an object of the specified type with the field values set from the map
* @throws NoSuchMethodException if the constructor of the required type is not found
* @throws InvocationTargetException if an error occurs while invoking the constructor
* @throws InstantiationException if the required type is abstract or an interface
* @throws IllegalAccessException if an error occurs while accessing the fields of the object
*/
public static <T> T mapToObject(Map<String, Object> map, Class<T> requiredType) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
public static <T> T mapToObject(Map<String, Object> map, Class<T> requiredType)
throws NoSuchMethodException, InvocationTargetException, InstantiationException,
IllegalAccessException {
var bean = requiredType.getConstructor().newInstance();
if (map != null) {
for (var entry : map.entrySet()) {
@@ -143,7 +137,8 @@ public final class ReflectMapUtil {
* field getter method
* @throws NoSuchMethodException if the specified getter is not present
*/
public static <T> T getFieldValue(Object obj, String fieldName, Class<T> fieldType) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
public static <T> T getFieldValue(Object obj, String fieldName, Class<T> fieldType)
throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
var methodName = getMethodName("get", fieldName);
var objectClass = obj.getClass();
var method = objectClass.getDeclaredMethod(methodName);
@@ -158,10 +153,8 @@ public final class ReflectMapUtil {
* @param obj the object in which to set the field value
* @param fieldName the name of the field
* @param fieldValue the value to be set
* @throws InvocationTargetException if an error occurs while invoking the
* field setter method
* @throws IllegalAccessException if an error occurs while accessing the
* field
* @throws InvocationTargetException if an error occurs while invoking the field setter method
* @throws IllegalAccessException if an error occurs while accessing the field
* @throws NoSuchMethodException if the specific setter is not present
*/
public static void setFieldValue(Object obj, String fieldName, Object fieldValue) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
@@ -178,8 +171,7 @@ public final class ReflectMapUtil {
* @param value the value to be cast
* @param requiredType the type to which the value should be cast
* @param <T> the type to which the value should be cast
* @return the cast value, or null if the value cannot be cast to the
* required type
* @return the cast value, or null if the value cannot be cast to the required type
*/
public static <T> T cast(Object value, Class<T> requiredType) {
if (requiredType.isInstance(value)) {
@@ -202,8 +194,7 @@ public final class ReflectMapUtil {
/**
* Returns the default string representation of the specified object.
*
* @param obj the object for which to return the default string
* representation
* @param obj the object for which to return the default string representation
* @return the default string representation of the object
*/
private static String defaultObject(Object obj) {