A comprehensive Java utility library providing static method wrappers for common operations to reduce API learning costs and improve development efficiency
npx @tessl/cli install tessl/maven-cn-hutool--hutool-all@5.8.0Hutool is a comprehensive Java utility library that provides static method wrappers to reduce Java API learning costs and improve development efficiency. It combines 19 specialized modules covering everything from basic string manipulation to advanced encryption, HTTP clients, and AI model integration.
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.40</version>
</dependency>// Core utilities - most commonly used
import cn.hutool.core.util.*;
// Specific utilities
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.DateUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
// Specialized modules
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.db.DbUtil;
import cn.hutool.log.StaticLog;import cn.hutool.core.util.*;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
// String operations
String result = StrUtil.format("Hello {}, welcome to {}", "World", "Hutool");
boolean isEmpty = StrUtil.isBlank(" ");
// Date operations
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");
Date parsed = DateUtil.parse("2023-01-01", "yyyy-MM-dd");
// HTTP requests
String response = HttpUtil.get("https://api.example.com/data");
String jsonPost = HttpUtil.post("https://api.example.com/submit", "{\"key\":\"value\"}");
// JSON processing
JSONObject json = JSONUtil.createObj()
.put("name", "hutool")
.put("version", "5.8.40");
String jsonStr = json.toString();
// File operations
String content = FileUtil.readUtf8String("config.txt");
FileUtil.writeUtf8String("output.txt", "Hello Hutool");
// Random data generation
String randomStr = RandomUtil.randomString(10);
int randomInt = RandomUtil.randomInt(1, 100);Hutool follows a modular architecture with 19 specialized modules:
All utilities follow consistent patterns:
Comprehensive string manipulation including validation, formatting, parsing, and transformation.
// Validation methods
public static boolean isBlank(CharSequence str);
public static boolean isEmpty(CharSequence str);
public static boolean isNotBlank(CharSequence str);
// Formatting and manipulation
public static String format(String template, Object... params);
public static String join(CharSequence delimiter, Object... elements);
public static String[] split(CharSequence str, CharSequence separator);Date parsing, formatting, calculation, and manipulation utilities.
// Parsing and formatting
public static Date parse(CharSequence dateStr, String format);
public static String format(Date date, String format);
// Date calculations
public static Date offset(Date date, DateField dateField, int offset);
public static long between(Date beginDate, Date endDate, DateUnit unit);HTTP request/response handling with support for various content types and authentication.
// Simple HTTP methods
public static String get(String urlString);
public static String post(String urlString, String body);
public static HttpResponse execute(HttpRequest request);
// File operations
public static long downloadFile(String url, File targetFile);JSON parsing, generation, and manipulation with path-based access.
// JSON creation and parsing
public static JSONObject createObj();
public static JSONArray createArray();
public static JSONObject parseObj(String jsonStr);
public static JSONArray parseArray(String jsonStr);Bean property access, copying, conversion, and dynamic manipulation.
// Bean operations
public static void copyProperties(Object source, Object target);
public static <T> T toBean(Object source, Class<T> targetType);
public static Map<String, Object> beanToMap(Object bean);Collection creation, manipulation, filtering, and transformation utilities.
// Collection operations
public static <T> List<T> newArrayList(T... values);
public static boolean isEmpty(Collection<?> collection);
public static <T> List<T> filter(Collection<T> collection, Predicate<T> predicate);File reading, writing, copying, and stream manipulation utilities.
// File operations
public static String readUtf8String(File file);
public static void writeUtf8String(String content, File file);
public static void copy(File src, File dest);
// Stream operations
public static String read(InputStream in, Charset charset);
public static void copy(InputStream in, OutputStream out);Encryption, decryption, hashing, and digital signature utilities.
// Hash operations
public static String md5(String data);
public static String sha256(String data);
// Symmetric encryption
public static SymmetricCrypto aes(byte[] key);
public static SymmetricCrypto des(byte[] key);JDBC wrapper with ActiveRecord pattern and connection management.
// Database operations
public static List<Entity> findAll(String tableName);
public static Entity findById(String tableName, Object id);
public static int insert(String tableName, Entity entity);Specialized utilities for validation, random generation, reflection, and system operations.
// Validation
public static boolean isEmail(CharSequence email);
public static boolean isPhone(CharSequence mobile);
// Random generation
public static String randomString(int length);
public static int randomInt(int min, int max);
// Reflection
public static <T> T newInstance(Class<T> clazz, Object... params);
public static Object invoke(Object obj, String methodName, Object... args);// Date field enumeration
public enum DateField {
YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND
}
// Date unit enumeration
public enum DateUnit {
MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
}
// HTTP method enumeration
public enum Method {
GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, TRACE
}
// Character encoding constants
public interface CharsetUtil {
Charset UTF_8 = StandardCharsets.UTF_8;
Charset GBK = Charset.forName("GBK");
String UTF_8_NAME = "UTF-8";
}// Enhanced Date class
public class DateTime extends Date {
public DateTime();
public DateTime(Date date);
public DateTime(String dateStr, String format);
public DateTime offset(DateField field, int offset);
public String toString(String format);
public boolean isWeekend();
}
// Dictionary implementation
public class Dict extends LinkedHashMap<String, Object> {
public static Dict create();
public Dict set(String key, Object value);
public <T> T get(String key, Class<T> type);
}
// Database entity
public class Entity extends LinkedHashMap<String, Object> {
public static Entity create();
public Entity set(String key, Object value);
public <T> T get(String key, Class<T> type);
}