CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-cn-hutool--hutool-all

A comprehensive Java utility library providing static method wrappers for common operations to reduce API learning costs and improve development efficiency

Pending
Overview
Eval results
Files

additional-utilities.mddocs/

Additional Utilities

Specialized utilities for validation, random generation, reflection, system operations, and various other common programming tasks.

Import

import cn.hutool.core.util.*;
import cn.hutool.core.lang.Validator;
import cn.hutool.system.SystemUtil;
import cn.hutool.extra.qr.QrCodeUtil;
import cn.hutool.captcha.CaptchaUtil;

Validation Utilities

Data Format Validation

// Email validation
public static boolean isEmail(CharSequence email);

// Phone number validation
public static boolean isPhone(CharSequence mobile);
public static boolean isMobile(CharSequence mobile);

// ID card validation
public static boolean isCitizenId(CharSequence citizenId);
public static boolean isValidCard(CharSequence cardNumber);

// URL validation
public static boolean isUrl(CharSequence url);
public static boolean isIpv4(CharSequence ipv4);
public static boolean isIpv6(CharSequence ipv6);

Number and String Validation

// Number validation
public static boolean isNumber(CharSequence str);
public static boolean isInteger(CharSequence str);
public static boolean isDouble(CharSequence str);

// String format validation
public static boolean isLetter(CharSequence value);
public static boolean isLetterUpper(CharSequence value);
public static boolean isLetterLower(CharSequence value);
public static boolean isChinese(CharSequence str);
public static boolean isWord(CharSequence value);

Usage Examples:

// Validate user input
String email = "user@example.com";
boolean validEmail = Validator.isEmail(email);  // true

String phone = "13812345678";
boolean validPhone = Validator.isMobile(phone);  // true

String idCard = "110101199003077890";
boolean validId = Validator.isCitizenId(idCard);  // depends on checksum

// Validate numeric input
String numberStr = "123.45";
boolean isNum = Validator.isNumber(numberStr);  // true
boolean isInt = Validator.isInteger(numberStr);  // false

Random Generation Utilities

Random Data Generation

// Random strings
public static String randomString(int length);
public static String randomString(String baseString, int length);
public static String randomStringUpper(int length);
public static String randomNumbers(int length);

// Random numbers
public static int randomInt();
public static int randomInt(int min, int max);
public static long randomLong();
public static long randomLong(long min, long max);
public static double randomDouble();
public static double randomDouble(double min, double max);

// Random selection
public static <T> T randomEle(T[] array);
public static <T> T randomEle(List<T> list);
public static <T> List<T> randomEles(List<T> list, int count);

UUID and ID Generation

// UUID generation
public static String randomUUID();
public static String simpleUUID();
public static String fastUUID();
public static String fastSimpleUUID();

// Snowflake ID (distributed unique ID)
public static long getSnowflakeNextId();
public static String getSnowflakeNextIdStr();

// Object ID (MongoDB style)
public static String objectId();

Usage Examples:

// Generate random data
String sessionId = RandomUtil.randomString(32);
String captcha = RandomUtil.randomNumbers(6);
int randomPort = RandomUtil.randomInt(8000, 9000);

// Generate unique IDs
String uuid = IdUtil.randomUUID();
String simpleId = IdUtil.simpleUUID();  // No dashes
long snowflakeId = IdUtil.getSnowflakeNextId();
String objectId = IdUtil.objectId();

// Random selection
List<String> colors = Arrays.asList("red", "green", "blue", "yellow");
String randomColor = RandomUtil.randomEle(colors);
List<String> twoColors = RandomUtil.randomEles(colors, 2);

Reflection Utilities

Class Operations

// Class loading and inspection
public static Class<?> loadClass(String name);
public static boolean isPresent(String className);
public static <T> T newInstance(Class<T> clazz, Object... params);

// Method operations
public static Method getMethod(Class<?> clazz, String methodName, Class<?>... paramTypes);
public static Object invoke(Object obj, String methodName, Object... args);
public static Object invokeStatic(Class<?> clazz, String methodName, Object... args);

// Field operations
public static Field getField(Class<?> clazz, String fieldName);
public static Object getFieldValue(Object obj, String fieldName);
public static void setFieldValue(Object obj, String fieldName, Object value);

Type Utilities

// Type checking
public static boolean isBasicType(Class<?> clazz);
public static boolean isWrapClass(Class<?> clazz);
public static boolean isPrimitiveWrapper(Class<?> clazz);

// Generic type operations
public static Type getTypeArgument(Type type);
public static Type getTypeArgument(Type type, int index);
public static Class<?> getClass(Type type);

Usage Examples:

// Dynamic object creation
Class<?> userClass = ReflectUtil.loadClass("com.example.User");
Object user = ReflectUtil.newInstance(userClass, "John", 30);

// Dynamic method invocation
Object result = ReflectUtil.invoke(user, "getName");
ReflectUtil.invoke(user, "setAge", 31);

// Dynamic field access
String name = (String) ReflectUtil.getFieldValue(user, "name");
ReflectUtil.setFieldValue(user, "active", true);

// Check if class exists
boolean hasClass = ReflectUtil.isPresent("com.mysql.cj.jdbc.Driver");

System Information Utilities

JVM and Runtime Information

// JVM information
public static JavaInfo getJavaInfo();
public static JvmInfo getJvmInfo();
public static RuntimeInfo getRuntimeInfo();

// Host information
public static HostInfo getHostInfo();
public static OsInfo getOsInfo();
public static UserInfo getUserInfo();

// Memory information
public static long getTotalMemory();
public static long getFreeMemory();
public static long getUsedMemory();
public static long getMaxMemory();

System Properties

// Get system properties
public static String get(String key);
public static String get(String key, String defaultValue);
public static void set(String key, String value);

// Common properties
public static String getJavaHome();
public static String getUserHome();
public static String getUserDir();
public static String getTmpDir();
public static String getFileSeparator();
public static String getPathSeparator();
public static String getLineSeparator();

Usage Examples:

// System information
JavaInfo javaInfo = SystemUtil.getJavaInfo();
System.out.println("Java Version: " + javaInfo.getVersion());

OsInfo osInfo = SystemUtil.getOsInfo();
System.out.println("OS: " + osInfo.getName() + " " + osInfo.getVersion());

// Memory monitoring
long usedMemory = SystemUtil.getUsedMemory();
long totalMemory = SystemUtil.getTotalMemory();
double memoryUsage = (double) usedMemory / totalMemory * 100;
System.out.println("Memory usage: " + memoryUsage + "%");

// System properties
String javaHome = SystemUtil.getJavaHome();
String userHome = SystemUtil.getUserHome();
String tmpDir = SystemUtil.getTmpDir();

QR Code and Captcha Utilities

QR Code Generation

// Generate QR codes
public static BufferedImage generate(String content, int width, int height);
public static void generate(String content, int width, int height, File file);
public static String generateAsBase64(String content, int width, int height);

// Decode QR codes
public static String decode(File qrCodeFile);
public static String decode(BufferedImage qrCodeImage);

Captcha Generation

// Create different types of captchas
public static LineCaptcha createLineCaptcha(int width, int height);
public static CircleCaptcha createCircleCaptcha(int width, int height);
public static ShearCaptcha createShearCaptcha(int width, int height);
public static GifCaptcha createGifCaptcha(int width, int height);

Usage Examples:

// Generate QR code
String url = "https://hutool.cn";
QrCodeUtil.generate(url, 200, 200, new File("qrcode.png"));

// Generate captcha
LineCaptcha captcha = CaptchaUtil.createLineCaptcha(200, 100);
String code = captcha.getCode();  // Get the answer
captcha.write(new File("captcha.png"));  // Save image

// Verify captcha
boolean verified = captcha.verify(userInputCode);

Coordinate and Geographic Utilities

Coordinate Conversions

// Coordinate system conversions
public static double[] wgs84ToGcj02(double lng, double lat);
public static double[] gcj02ToWgs84(double lng, double lat);
public static double[] gcj02ToBd09(double lng, double lat);
public static double[] bd09ToGcj02(double lng, double lat);

// Distance calculations
public static double distance(double lng1, double lat1, double lng2, double lat2);

Number and Math Utilities

Number Operations

// Number parsing and formatting
public static Number parseNumber(String numberStr);
public static int parseInt(String numberStr);
public static long parseLong(String numberStr);
public static double parseDouble(String numberStr);

// Number validation
public static boolean isNumber(String str);
public static boolean isInteger(String str);
public static boolean isDouble(String str);

// Number comparison
public static boolean equals(Number num1, Number num2);
public static int compare(Number num1, Number num2);

// Number formatting
public static String decimalFormat(String format, Object value);
public static String formatPercent(double number, int decimalPlaces);

Mathematical Operations

// Basic math operations
public static double add(Number... numbers);
public static double subtract(Number num1, Number num2);
public static double multiply(Number... numbers);
public static double divide(Number num1, Number num2);

// Rounding operations
public static double roundUp(double value, int scale);
public static double roundDown(double value, int scale);
public static double round(double value, int scale);

// Range operations
public static boolean isIn(Number value, Number min, Number max);
public static Number max(Number... numbers);
public static Number min(Number... numbers);

Usage Examples:

// Safe number parsing
String userInput = "123.45";
double value = NumberUtil.parseDouble(userInput);  // Handles null and invalid formats

// Precise calculations (avoids floating point errors)
double result = NumberUtil.add(0.1, 0.2);  // Returns exactly 0.3
double percentage = NumberUtil.formatPercent(0.1234, 2);  // "12.34%"

// Number validation and comparison
boolean isNum = NumberUtil.isNumber("123.45");
boolean equal = NumberUtil.equals(123.0, 123);  // true

// Geographic calculations
// Convert GPS coordinates between different systems
double[] wgs84 = {116.3974, 39.9093};  // Beijing in WGS84
double[] gcj02 = CoordinateUtil.wgs84ToGcj02(wgs84[0], wgs84[1]);

// Calculate distance between two points
double distance = CoordinateUtil.distance(116.3974, 39.9093, 121.4737, 31.2304);  // Beijing to Shanghai

All utility classes provide null-safe operations and handle edge cases gracefully. They follow consistent naming conventions and provide both basic and advanced functionality for common programming tasks.

Install with Tessl CLI

npx tessl i tessl/maven-cn-hutool--hutool-all

docs

additional-utilities.md

bean-object-manipulation.md

collection-utilities.md

core-string-operations.md

cryptographic-operations.md

database-access.md

date-time-handling.md

file-io-operations.md

http-client-operations.md

index.md

json-processing.md

tile.json