Deep object graphs ( user.getAddress().getCity().getName() ). if (user != null && user.getAddress() != null ...) New in 3.9 (using ObjectUtil ):
Replaces long, boilerplate Java code with single-line static methods. Forward Thinking: hutool 39 new
Older versions of Hutool would write temporary files to disk for large zip operations. introduced ZipUtil.zip(File zipFile, boolean withTempFile, File... sources) . By setting withTempFile to false , the library now zips entirely in memory using ByteArrayOutputStream , which is a game-changer for serverless functions (AWS Lambda) where writing to /tmp is expensive. Deep object graphs ( user