【例子介绍】hutool网络模块
【相关图片】
【源码结构】
.
├── hutool-5-master
│ ├── CHANGELOG.md
│ ├── CHANGELOG_5.0-5.7.md
│ ├── LICENSE
│ ├── README-EN.md
│ ├── README.md
│ ├── SECURITY.md
│ ├── bin
│ │ ├── check_dependency_updates.sh
│ │ ├── cobertura.sh
│ │ ├── commit.sh
│ │ ├── deploy.sh
│ │ ├── fast_install.sh
│ │ ├── install.sh
│ │ ├── javadoc.sh
│ │ ├── logo.sh
│ │ ├── package.sh
│ │ ├── push_dev.sh
│ │ ├── push_master.sh
│ │ ├── replaceVersion.sh
│ │ ├── simple_install.sh
│ │ ├── test.sh
│ │ ├── update_version.sh
│ │ └── version.txt
│ ├── docs
│ │ └── js
│ │ └── version.js
│ ├── hutool-all
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ ├── Hutool.java
│ │ └── package-info.java
│ ├── hutool-aop
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── cn
│ │ │ │ └── hutool
│ │ │ │ └── aop
│ │ │ │ ├── ProxyUtil.java
│ │ │ │ ├── aspects
│ │ │ │ │ ├── Aspect.java
│ │ │ │ │ ├── SimpleAspect.java
│ │ │ │ │ ├── TimeIntervalAspect.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── interceptor
│ │ │ │ │ ├── CglibInterceptor.java
│ │ │ │ │ ├── JdkInterceptor.java
│ │ │ │ │ ├── SpringCglibInterceptor.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── proxy
│ │ │ │ ├── CglibProxyFactory.java
│ │ │ │ ├── JdkProxyFactory.java
│ │ │ │ ├── ProxyFactory.java
│ │ │ │ ├── SpringCglibProxyFactory.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── cn.hutool.aop.proxy.ProxyFactory
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── aop
│ │ └── test
│ │ └── AopTest.java
│ ├── hutool-bloomFilter
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── bloomfilter
│ │ │ ├── BitMapBloomFilter.java
│ │ │ ├── BitSetBloomFilter.java
│ │ │ ├── BloomFilter.java
│ │ │ ├── BloomFilterUtil.java
│ │ │ ├── bitMap
│ │ │ │ ├── BitMap.java
│ │ │ │ ├── IntMap.java
│ │ │ │ ├── LongMap.java
│ │ │ │ └── package-info.java
│ │ │ ├── filter
│ │ │ │ ├── AbstractFilter.java
│ │ │ │ ├── DefaultFilter.java
│ │ │ │ ├── ELFFilter.java
│ │ │ │ ├── FNVFilter.java
│ │ │ │ ├── FuncFilter.java
│ │ │ │ ├── HfFilter.java
│ │ │ │ ├── HfIpFilter.java
│ │ │ │ ├── JSFilter.java
│ │ │ │ ├── PJWFilter.java
│ │ │ │ ├── RSFilter.java
│ │ │ │ ├── SDBMFilter.java
│ │ │ │ ├── TianlFilter.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── bloomfilter
│ │ └── BitMapBloomFilterTest.java
│ ├── hutool-bom
│ │ └── pom.xml
│ ├── hutool-cache
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── cache
│ │ │ ├── Cache.java
│ │ │ ├── CacheListener.java
│ │ │ ├── CacheUtil.java
│ │ │ ├── GlobalPruneTimer.java
│ │ │ ├── file
│ │ │ │ ├── AbstractFileCache.java
│ │ │ │ ├── LFUFileCache.java
│ │ │ │ ├── LRUFileCache.java
│ │ │ │ └── package-info.java
│ │ │ ├── impl
│ │ │ │ ├── AbstractCache.java
│ │ │ │ ├── CacheObj.java
│ │ │ │ ├── CacheObjIterator.java
│ │ │ │ ├── CacheValuesIterator.java
│ │ │ │ ├── FIFOCache.java
│ │ │ │ ├── LFUCache.java
│ │ │ │ ├── LRUCache.java
│ │ │ │ ├── NoCache.java
│ │ │ │ ├── ReentrantCache.java
│ │ │ │ ├── StampedCache.java
│ │ │ │ ├── TimedCache.java
│ │ │ │ ├── WeakCache.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── cache
│ │ ├── CacheConcurrentTest.java
│ │ ├── CacheTest.java
│ │ ├── FileCacheTest.java
│ │ ├── LRUCacheTest.java
│ │ └── WeakCacheTest.java
│ ├── hutool-captcha
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── captcha
│ │ │ ├── AbstractCaptcha.java
│ │ │ ├── CaptchaUtil.java
│ │ │ ├── CircleCaptcha.java
│ │ │ ├── GifCaptcha.java
│ │ │ ├── ICaptcha.java
│ │ │ ├── LineCaptcha.java
│ │ │ ├── ShearCaptcha.java
│ │ │ ├── generator
│ │ │ │ ├── AbstractGenerator.java
│ │ │ │ ├── CodeGenerator.java
│ │ │ │ ├── MathGenerator.java
│ │ │ │ ├── RandomGenerator.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── captcha
│ │ ├── CaptchaTest.java
│ │ ├── CaptchaUtilTest.java
│ │ └── GeneratorTest.java
│ ├── hutool-core
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── core
│ │ │ ├── annotation
│ │ │ │ ├── Alias.java
│ │ │ │ ├── AnnotationProxy.java
│ │ │ │ ├── AnnotationUtil.java
│ │ │ │ ├── CombinationAnnotationElement.java
│ │ │ │ ├── PropIgnore.java
│ │ │ │ └── package-info.java
│ │ │ ├── bean
│ │ │ │ ├── BeanDesc.java
│ │ │ │ ├── BeanDescCache.java
│ │ │ │ ├── BeanException.java
│ │ │ │ ├── BeanInfoCache.java
│ │ │ │ ├── BeanPath.java
│ │ │ │ ├── BeanUtil.java
│ │ │ │ ├── DynaBean.java
│ │ │ │ ├── NullWrapperBean.java
│ │ │ │ ├── PropDesc.java
│ │ │ │ ├── copier
│ │ │ │ │ ├── AbsCopier.java
│ │ │ │ │ ├── BeanCopier.java
│ │ │ │ │ ├── BeanToBeanCopier.java
│ │ │ │ │ ├── BeanToMapCopier.java
│ │ │ │ │ ├── CopyOptions.java
│ │ │ │ │ ├── MapToBeanCopier.java
│ │ │ │ │ ├── MapToMapCopier.java
│ │ │ │ │ ├── ValueProvider.java
│ │ │ │ │ ├── ValueProviderToBeanCopier.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ └── provider
│ │ │ │ │ ├── DynaBeanValueProvider.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── builder
│ │ │ │ ├── Builder.java
│ │ │ │ ├── CompareToBuilder.java
│ │ │ │ ├── EqualsBuilder.java
│ │ │ │ ├── GenericBuilder.java
│ │ │ │ ├── HashCodeBuilder.java
│ │ │ │ ├── IDKey.java
│ │ │ │ └── package-info.java
│ │ │ ├── clone
│ │ │ │ ├── CloneRuntimeException.java
│ │ │ │ ├── CloneSupport.java
│ │ │ │ ├── Cloneable.java
│ │ │ │ ├── DefaultCloneable.java
│ │ │ │ └── package-info.java
│ │ │ ├── codec
│ │ │ │ ├── BCD.java
│ │ │ │ ├── Base16Codec.java
│ │ │ │ ├── Base32.java
│ │ │ │ ├── Base32Codec.java
│ │ │ │ ├── Base58.java
│ │ │ │ ├── Base58Codec.java
│ │ │ │ ├── Base62.java
│ │ │ │ ├── Base62Codec.java
│ │ │ │ ├── Base64.java
│ │ │ │ ├── Base64Decoder.java
│ │ │ │ ├── Base64Encoder.java
│ │ │ │ ├── Caesar.java
│ │ │ │ ├── Decoder.java
│ │ │ │ ├── Encoder.java
│ │ │ │ ├── Hashids.java
│ │ │ │ ├── Morse.java
│ │ │ │ ├── PercentCodec.java
│ │ │ │ ├── PunyCode.java
│ │ │ │ ├── Rot.java
│ │ │ │ └── package-info.java
│ │ │ ├── collection
│ │ │ │ ├── ArrayIter.java
│ │ │ │ ├── AvgPartition.java
│ │ │ │ ├── BoundedPriorityQueue.java
│ │ │ │ ├── CollStreamUtil.java
│ │ │ │ ├── CollUtil.java
│ │ │ │ ├── CollectionUtil.java
│ │ │ │ ├── ComputeIter.java
│ │ │ │ ├── ConcurrentHashSet.java
│ │ │ │ ├── CopiedIter.java
│ │ │ │ ├── EnumerationIter.java
│ │ │ │ ├── FilterIter.java
│ │ │ │ ├── IterChain.java
│ │ │ │ ├── IterUtil.java
│ │ │ │ ├── IterableIter.java
│ │ │ │ ├── IteratorEnumeration.java
│ │ │ │ ├── LineIter.java
│ │ │ │ ├── ListUtil.java
│ │ │ │ ├── NodeListIter.java
│ │ │ │ ├── Partition.java
│ │ │ │ ├── PartitionIter.java
│ │ │ │ ├── RandomAccessAvgPartition.java
│ │ │ │ ├── RandomAccessPartition.java
│ │ │ │ ├── ResettableIter.java
│ │ │ │ ├── RingIndexUtil.java
│ │ │ │ ├── SpliteratorUtil.java
│ │ │ │ ├── TransCollection.java
│ │ │ │ ├── TransIter.java
│ │ │ │ ├── TransSpliterator.java
│ │ │ │ ├── UniqueKeySet.java
│ │ │ │ └── package-info.java
│ │ │ ├── comparator
│ │ │ │ ├── BaseFieldComparator.java
│ │ │ │ ├── ComparableComparator.java
│ │ │ │ ├── ComparatorChain.java
│ │ │ │ ├── ComparatorException.java
│ │ │ │ ├── CompareUtil.java
│ │ │ │ ├── FieldComparator.java
│ │ │ │ ├── FieldsComparator.java
│ │ │ │ ├── FuncComparator.java
│ │ │ │ ├── IndexedComparator.java
│ │ │ │ ├── InstanceComparator.java
│ │ │ │ ├── NullComparator.java
│ │ │ │ ├── PinyinComparator.java
│ │ │ │ ├── PropertyComparator.java
│ │ │ │ ├── ReverseComparator.java
│ │ │ │ ├── VersionComparator.java
│ │ │ │ └── package-info.java
│ │ │ ├── compiler
│ │ │ │ ├── CompilerException.java
│ │ │ │ ├── CompilerUtil.java
│ │ │ │ ├── DiagnosticUtil.java
│ │ │ │ ├── JavaClassFileManager.java
│ │ │ │ ├── JavaClassFileObject.java
│ │ │ │ ├── JavaFileObjectUtil.java
│ │ │ │ ├── JavaSourceCompiler.java
│ │ │ │ ├── JavaSourceFileObject.java
│ │ │ │ └── package-info.java
│ │ │ ├── compress
│ │ │ │ ├── Deflate.java
│ │ │ │ ├── Gzip.java
│ │ │ │ ├── ZipCopyVisitor.java
│ │ │ │ ├── ZipReader.java
│ │ │ │ ├── ZipWriter.java
│ │ │ │ └── package-info.java
│ │ │ ├── convert
│ │ │ │ ├── AbstractConverter.java
│ │ │ │ ├── BasicType.java
│ │ │ │ ├── Convert.java
│ │ │ │ ├── ConvertException.java
│ │ │ │ ├── Converter.java
│ │ │ │ ├── ConverterRegistry.java
│ │ │ │ ├── NumberChineseFormatter.java
│ │ │ │ ├── NumberWordFormatter.java
│ │ │ │ ├── TypeConverter.java
│ │ │ │ ├── impl
│ │ │ │ │ ├── ArrayConverter.java
│ │ │ │ │ ├── AtomicBooleanConverter.java
│ │ │ │ │ ├── AtomicIntegerArrayConverter.java
│ │ │ │ │ ├── AtomicLongArrayConverter.java
│ │ │ │ │ ├── AtomicReferenceConverter.java
│ │ │ │ │ ├── BeanConverter.java
│ │ │ │ │ ├── BooleanConverter.java
│ │ │ │ │ ├── CalendarConverter.java
│ │ │ │ │ ├── CastConverter.java
│ │ │ │ │ ├── CharacterConverter.java
│ │ │ │ │ ├── CharsetConverter.java
│ │ │ │ │ ├── ClassConverter.java
│ │ │ │ │ ├── CollectionConverter.java
│ │ │ │ │ ├── CurrencyConverter.java
│ │ │ │ │ ├── DateConverter.java
│ │ │ │ │ ├── DurationConverter.java
│ │ │ │ │ ├── EnumConverter.java
│ │ │ │ │ ├── LocaleConverter.java
│ │ │ │ │ ├── MapConverter.java
│ │ │ │ │ ├── NumberConverter.java
│ │ │ │ │ ├── OptConverter.java
│ │ │ │ │ ├── OptionalConverter.java
│ │ │ │ │ ├── PathConverter.java
│ │ │ │ │ ├── PeriodConverter.java
│ │ │ │ │ ├── PrimitiveConverter.java
│ │ │ │ │ ├── ReferenceConverter.java
│ │ │ │ │ ├── StackTraceElementConverter.java
│ │ │ │ │ ├── StringConverter.java
│ │ │ │ │ ├── TemporalAccessorConverter.java
│ │ │ │ │ ├── TimeZoneConverter.java
│ │ │ │ │ ├── URIConverter.java
│ │ │ │ │ ├── URLConverter.java
│ │ │ │ │ ├── UUIDConverter.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── date
│ │ │ │ ├── BetweenFormatter.java
│ │ │ │ ├── CalendarUtil.java
│ │ │ │ ├── ChineseDate.java
│ │ │ │ ├── DateBetween.java
│ │ │ │ ├── DateException.java
│ │ │ │ ├── DateField.java
│ │ │ │ ├── DateModifier.java
│ │ │ │ ├── DatePattern.java
│ │ │ │ ├── DateRange.java
│ │ │ │ ├── DateTime.java
│ │ │ │ ├── DateUnit.java
│ │ │ │ ├── DateUtil.java
│ │ │ │ ├── GroupTimeInterval.java
│ │ │ │ ├── LocalDateTimeUtil.java
│ │ │ │ ├── Month.java
│ │ │ │ ├── Quarter.java
│ │ │ │ ├── StopWatch.java
│ │ │ │ ├── SystemClock.java
│ │ │ │ ├── TemporalAccessorUtil.java
│ │ │ │ ├── TemporalUtil.java
│ │ │ │ ├── TimeInterval.java
│ │ │ │ ├── Week.java
│ │ │ │ ├── Zodiac.java
│ │ │ │ ├── ZoneUtil.java
│ │ │ │ ├── chinese
│ │ │ │ │ ├── ChineseMonth.java
│ │ │ │ │ ├── GanZhi.java
│ │ │ │ │ ├── LunarFestival.java
│ │ │ │ │ ├── LunarInfo.java
│ │ │ │ │ ├── SolarTerms.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── format
│ │ │ │ │ ├── AbstractDateBasic.java
│ │ │ │ │ ├── DateBasic.java
│ │ │ │ │ ├── DateParser.java
│ │ │ │ │ ├── DatePrinter.java
│ │ │ │ │ ├── FastDateFormat.java
│ │ │ │ │ ├── FastDateParser.java
│ │ │ │ │ ├── FastDatePrinter.java
│ │ │ │ │ ├── FormatCache.java
│ │ │ │ │ ├── GlobalCustomFormat.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── exceptions
│ │ │ │ ├── CheckedUtil.java
│ │ │ │ ├── DependencyException.java
│ │ │ │ ├── ExceptionUtil.java
│ │ │ │ ├── NotInitedException.java
│ │ │ │ ├── StatefulException.java
│ │ │ │ ├── UtilException.java
│ │ │ │ ├── ValidateException.java
│ │ │ │ └── package-info.java
│ │ │ ├── getter
│ │ │ │ ├── ArrayTypeGetter.java
│ │ │ │ ├── BasicTypeGetter.java
│ │ │ │ ├── GroupedTypeGetter.java
│ │ │ │ ├── ListTypeGetter.java
│ │ │ │ ├── OptArrayTypeGetter.java
│ │ │ │ ├── OptBasicTypeGetter.java
│ │ │ │ ├── OptNullBasicTypeFromObjectGetter.java
│ │ │ │ ├── OptNullBasicTypeFromStringGetter.java
│ │ │ │ ├── OptNullBasicTypeGetter.java
│ │ │ │ └── package-info.java
│ │ │ ├── img
│ │ │ │ ├── BackgroundRemoval.java
│ │ │ │ ├── FontUtil.java
│ │ │ │ ├── GraphicsUtil.java
│ │ │ │ ├── Img.java
│ │ │ │ ├── ImgUtil.java
│ │ │ │ ├── ScaleType.java
│ │ │ │ ├── gif
│ │ │ │ │ ├── AnimatedGifEncoder.java
│ │ │ │ │ ├── GifDecoder.java
│ │ │ │ │ ├── LZWEncoder.java
│ │ │ │ │ ├── NeuQuant.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── io
│ │ │ │ ├── AppendableWriter.java
│ │ │ │ ├── BOMInputStream.java
│ │ │ │ ├── BomReader.java
│ │ │ │ ├── BufferUtil.java
│ │ │ │ ├── CharsetDetector.java
│ │ │ │ ├── FastByteArrayOutputStream.java
│ │ │ │ ├── FastByteBuffer.java
│ │ │ │ ├── FastStringWriter.java
│ │ │ │ ├── FileTypeUtil.java
│ │ │ │ ├── FileUtil.java
│ │ │ │ ├── IORuntimeException.java
│ │ │ │ ├── IoUtil.java
│ │ │ │ ├── LineHandler.java
│ │ │ │ ├── ManifestUtil.java
│ │ │ │ ├── NioUtil.java
│ │ │ │ ├── NullOutputStream.java
│ │ │ │ ├── StreamProgress.java
│ │ │ │ ├── ValidateObjectInputStream.java
│ │ │ │ ├── checksum
│ │ │ │ │ ├── CRC16.java
│ │ │ │ │ ├── CRC8.java
│ │ │ │ │ ├── crc16
│ │ │ │ │ │ ├── CRC16Ansi.java
│ │ │ │ │ │ ├── CRC16CCITT.java
│ │ │ │ │ │ ├── CRC16CCITTFalse.java
│ │ │ │ │ │ ├── CRC16Checksum.java
│ │ │ │ │ │ ├── CRC16DNP.java
│ │ │ │ │ │ ├── CRC16IBM.java
│ │ │ │ │ │ ├── CRC16Maxim.java
│ │ │ │ │ │ ├── CRC16Modbus.java
│ │ │ │ │ │ ├── CRC16USB.java
│ │ │ │ │ │ ├── CRC16X25.java
│ │ │ │ │ │ ├── CRC16XModem.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── copy
│ │ │ │ │ ├── ChannelCopier.java
│ │ │ │ │ ├── IoCopier.java
│ │ │ │ │ ├── ReaderWriterCopier.java
│ │ │ │ │ ├── StreamCopier.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── file
│ │ │ │ │ ├── FileAppender.java
│ │ │ │ │ ├── FileCopier.java
│ │ │ │ │ ├── FileMode.java
│ │ │ │ │ ├── FileNameUtil.java
│ │ │ │ │ ├── FileReader.java
│ │ │ │ │ ├── FileSystemUtil.java
│ │ │ │ │ ├── FileWrapper.java
│ │ │ │ │ ├── FileWriter.java
│ │ │ │ │ ├── LineReadWatcher.java
│ │ │ │ │ ├── LineSeparator.java
│ │ │ │ │ ├── PathUtil.java
│ │ │ │ │ ├── Tailer.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ └── visitor
│ │ │ │ │ ├── CopyVisitor.java
│ │ │ │ │ ├── DelVisitor.java
│ │ │ │ │ ├── MoveVisitor.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── resource
│ │ │ │ │ ├── BytesResource.java
│ │ │ │ │ ├── CharSequenceResource.java
│ │ │ │ │ ├── ClassPathResource.java
│ │ │ │ │ ├── FileObjectResource.java
│ │ │ │ │ ├── FileResource.java
│ │ │ │ │ ├── InputStreamResource.java
│ │ │ │ │ ├── MultiFileResource.java
│ │ │ │ │ ├── MultiResource.java
│ │ │ │ │ ├── NoResourceException.java
│ │ │ │ │ ├── Resource.java
│ │ │ │ │ ├── ResourceUtil.java
│ │ │ │ │ ├── StringResource.java
│ │ │ │ │ ├── UrlResource.java
│ │ │ │ │ ├── VfsResource.java
│ │ │ │ │ ├── WebAppResource.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── unit
│ │ │ │ │ ├── DataSize.java
│ │ │ │ │ ├── DataSizeUtil.java
│ │ │ │ │ ├── DataUnit.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── watch
│ │ │ │ ├── SimpleWatcher.java
│ │ │ │ ├── WatchAction.java
│ │ │ │ ├── WatchException.java
│ │ │ │ ├── WatchKind.java
│ │ │ │ ├── WatchMonitor.java
│ │ │ │ ├── WatchServer.java
│ │ │ │ ├── WatchUtil.java
│ │ │ │ ├── Watcher.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── watchers
│ │ │ │ ├── DelayWatcher.java
│ │ │ │ ├── IgnoreWatcher.java
│ │ │ │ ├── WatcherChain.java
│ │ │ │ └── package-info.java
│ │ │ ├── lang
│ │ │ │ ├── Assert.java
│ │ │ │ ├── Chain.java
│ │ │ │ ├── ClassScanner.java
│ │ │ │ ├── ConsistentHash.java
│ │ │ │ ├── Console.java
│ │ │ │ ├── ConsoleTable.java
│ │ │ │ ├── DefaultSegment.java
│ │ │ │ ├── Dict.java
│ │ │ │ ├── Editor.java
│ │ │ │ ├── EnumItem.java
│ │ │ │ ├── Filter.java
│ │ │ │ ├── JarClassLoader.java
│ │ │ │ ├── Matcher.java
│ │ │ │ ├── ObjectId.java
│ │ │ │ ├── Opt.java
│ │ │ │ ├── Pair.java
│ │ │ │ ├── ParameterizedTypeImpl.java
│ │ │ │ ├── PatternPool.java
│ │ │ │ ├── Pid.java
│ │ │ │ ├── Range.java
│ │ │ │ ├── RegexPool.java
│ │ │ │ ├── Replacer.java
│ │ │ │ ├── ResourceClassLoader.java
│ │ │ │ ├── Segment.java
│ │ │ │ ├── SimpleCache.java
│ │ │ │ ├── Singleton.java
│ │ │ │ ├── Snowflake.java
│ │ │ │ ├── Tuple.java
│ │ │ │ ├── TypeReference.java
│ │ │ │ ├── UUID.java
│ │ │ │ ├── Validator.java
│ │ │ │ ├── WeightRandom.java
│ │ │ │ ├── ansi
│ │ │ │ │ ├── Ansi8BitColor.java
│ │ │ │ │ ├── AnsiBackground.java
│ │ │ │ │ ├── AnsiColor.java
│ │ │ │ │ ├── AnsiElement.java
│ │ │ │ │ ├── AnsiEncoder.java
│ │ │ │ │ ├── AnsiStyle.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── caller
│ │ │ │ │ ├── Caller.java
│ │ │ │ │ ├── CallerUtil.java
│ │ │ │ │ ├── SecurityManagerCaller.java
│ │ │ │ │ ├── StackTraceCaller.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── copier
│ │ │ │ │ ├── Copier.java
│ │ │ │ │ ├── SrcToDestCopier.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── func
│ │ │ │ │ ├── Consumer3.java
│ │ │ │ │ ├── Func.java
│ │ │ │ │ ├── Func0.java
│ │ │ │ │ ├── Func1.java
│ │ │ │ │ ├── LambdaUtil.java
│ │ │ │ │ ├── Supplier1.java
│ │ │ │ │ ├── Supplier2.java
│ │ │ │ │ ├── Supplier3.java
│ │ │ │ │ ├── Supplier4.java
│ │ │ │ │ ├── Supplier5.java
│ │ │ │ │ ├── VoidFunc.java
│ │ │ │ │ ├── VoidFunc0.java
│ │ │ │ │ ├── VoidFunc1.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── generator
│ │ │ │ │ ├── Generator.java
│ │ │ │ │ ├── ObjectGenerator.java
│ │ │ │ │ ├── ObjectIdGenerator.java
│ │ │ │ │ ├── SnowflakeGenerator.java
│ │ │ │ │ ├── UUIDGenerator.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── hash
│ │ │ │ │ ├── CityHash.java
│ │ │ │ │ ├── Hash.java
│ │ │ │ │ ├── Hash128.java
│ │ │ │ │ ├── Hash32.java
│ │ │ │ │ ├── Hash64.java
│ │ │ │ │ ├── KetamaHash.java
│ │ │ │ │ ├── MetroHash.java
│ │ │ │ │ ├── MurmurHash.java
│ │ │ │ │ ├── Number128.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── id
│ │ │ │ │ ├── NanoId.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── intern
│ │ │ │ │ ├── InternUtil.java
│ │ │ │ │ ├── Interner.java
│ │ │ │ │ ├── JdkStringInterner.java
│ │ │ │ │ ├── WeakInterner.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── loader
│ │ │ │ │ ├── AtomicLoader.java
│ │ │ │ │ ├── LazyFunLoader.java
│ │ │ │ │ ├── LazyLoader.java
│ │ │ │ │ ├── Loader.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── mutable
│ │ │ │ │ ├── Mutable.java
│ │ │ │ │ ├── MutableBool.java
│ │ │ │ │ ├── MutableByte.java
│ │ │ │ │ ├── MutableDouble.java
│ │ │ │ │ ├── MutableFloat.java
│ │ │ │ │ ├── MutableInt.java
│ │ │ │ │ ├── MutableLong.java
│ │ │ │ │ ├── MutableObj.java
│ │ │ │ │ ├── MutablePair.java
│ │ │ │ │ ├── MutableShort.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── reflect
│ │ │ │ │ ├── ActualTypeMapperPool.java
│ │ │ │ │ ├── LookupFactory.java
│ │ │ │ │ ├── MethodHandleUtil.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── tree
│ │ │ │ ├── Node.java
│ │ │ │ ├── Tree.java
│ │ │ │ ├── TreeBuilder.java
│ │ │ │ ├── TreeNode.java
│ │ │ │ ├── TreeNodeConfig.java
│ │ │ │ ├── TreeUtil.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── parser
│ │ │ │ ├── DefaultNodeParser.java
│ │ │ │ └── NodeParser.java
│ │ │ ├── map
│ │ │ │ ├── AbsEntry.java
│ │ │ │ ├── BiMap.java
│ │ │ │ ├── CamelCaseLinkedMap.java
│ │ │ │ ├── CamelCaseMap.java
│ │ │ │ ├── CaseInsensitiveLinkedMap.java
│ │ │ │ ├── CaseInsensitiveMap.java
│ │ │ │ ├── CaseInsensitiveTreeMap.java
│ │ │ │ ├── CustomKeyMap.java
│ │ │ │ ├── FixedLinkedHashMap.java
│ │ │ │ ├── FuncKeyMap.java
│ │ │ │ ├── FuncMap.java
│ │ │ │ ├── MapBuilder.java
│ │ │ │ ├── MapProxy.java
│ │ │ │ ├── MapUtil.java
│ │ │ │ ├── MapWrapper.java
│ │ │ │ ├── ReferenceConcurrentMap.java
│ │ │ │ ├── TableMap.java
│ │ │ │ ├── TolerantMap.java
│ │ │ │ ├── TransMap.java
│ │ │ │ ├── WeakConcurrentMap.java
│ │ │ │ ├── multi
│ │ │ │ │ ├── AbsCollValueMap.java
│ │ │ │ │ ├── AbsTable.java
│ │ │ │ │ ├── CollectionValueMap.java
│ │ │ │ │ ├── ListValueMap.java
│ │ │ │ │ ├── RowKeyTable.java
│ │ │ │ │ ├── SetValueMap.java
│ │ │ │ │ ├── Table.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── math
│ │ │ │ ├── Arrangement.java
│ │ │ │ ├── BitStatusUtil.java
│ │ │ │ ├── Calculator.java
│ │ │ │ ├── Combination.java
│ │ │ │ ├── MathUtil.java
│ │ │ │ ├── Money.java
│ │ │ │ └── package-info.java
│ │ │ ├── net
│ │ │ │ ├── DefaultTrustManager.java
│ │ │ │ ├── FormUrlencoded.java
│ │ │ │ ├── Ipv4Util.java
│ │ │ │ ├── LocalPortGenerater.java
│ │ │ │ ├── MaskBit.java
│ │ │ │ ├── NetUtil.java
│ │ │ │ ├── PassAuth.java
│ │ │ │ ├── RFC3986.java
│ │ │ │ ├── SSLContextBuilder.java
│ │ │ │ ├── SSLProtocols.java
│ │ │ │ ├── SSLUtil.java
│ │ │ │ ├── URLDecoder.java
│ │ │ │ ├── URLEncodeUtil.java
│ │ │ │ ├── URLEncoder.java
│ │ │ │ ├── UserPassAuthenticator.java
│ │ │ │ ├── multipart
│ │ │ │ │ ├── MultipartFormData.java
│ │ │ │ │ ├── MultipartRequestInputStream.java
│ │ │ │ │ ├── UploadFile.java
│ │ │ │ │ ├── UploadFileHeader.java
│ │ │ │ │ ├── UploadSetting.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── url
│ │ │ │ ├── UrlBuilder.java
│ │ │ │ ├── UrlPath.java
│ │ │ │ ├── UrlQuery.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── stream
│ │ │ │ ├── CollectorUtil.java
│ │ │ │ ├── SimpleCollector.java
│ │ │ │ ├── StreamUtil.java
│ │ │ │ └── package-info.java
│ │ │ ├── swing
│ │ │ │ ├── DesktopUtil.java
│ │ │ │ ├── RobotUtil.java
│ │ │ │ ├── ScreenUtil.java
│ │ │ │ ├── clipboard
│ │ │ │ │ ├── ClipboardListener.java
│ │ │ │ │ ├── ClipboardMonitor.java
│ │ │ │ │ ├── ClipboardUtil.java
│ │ │ │ │ ├── ImageSelection.java
│ │ │ │ │ ├── StrClipboardListener.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── text
│ │ │ │ ├── ASCIIStrCache.java
│ │ │ │ ├── AntPathMatcher.java
│ │ │ │ ├── CharPool.java
│ │ │ │ ├── CharSequenceUtil.java
│ │ │ │ ├── NamingCase.java
│ │ │ │ ├── PasswdStrength.java
│ │ │ │ ├── Simhash.java
│ │ │ │ ├── StrBuilder.java
│ │ │ │ ├── StrFormatter.java
│ │ │ │ ├── StrJoiner.java
│ │ │ │ ├── StrMatcher.java
│ │ │ │ ├── StrPool.java
│ │ │ │ ├── StrSplitter.java
│ │ │ │ ├── TextSimilarity.java
│ │ │ │ ├── UnicodeUtil.java
│ │ │ │ ├── csv
│ │ │ │ │ ├── CsvBaseReader.java
│ │ │ │ │ ├── CsvConfig.java
│ │ │ │ │ ├── CsvData.java
│ │ │ │ │ ├── CsvParser.java
│ │ │ │ │ ├── CsvReadConfig.java
│ │ │ │ │ ├── CsvReader.java
│ │ │ │ │ ├── CsvRow.java
│ │ │ │ │ ├── CsvRowHandler.java
│ │ │ │ │ ├── CsvUtil.java
│ │ │ │ │ ├── CsvWriteConfig.java
│ │ │ │ │ ├── CsvWriter.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── escape
│ │ │ │ │ ├── Html4Escape.java
│ │ │ │ │ ├── Html4Unescape.java
│ │ │ │ │ ├── InternalEscapeUtil.java
│ │ │ │ │ ├── NumericEntityUnescaper.java
│ │ │ │ │ ├── XmlEscape.java
│ │ │ │ │ ├── XmlUnescape.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── finder
│ │ │ │ │ ├── CharFinder.java
│ │ │ │ │ ├── CharMatcherFinder.java
│ │ │ │ │ ├── Finder.java
│ │ │ │ │ ├── LengthFinder.java
│ │ │ │ │ ├── PatternFinder.java
│ │ │ │ │ ├── StrFinder.java
│ │ │ │ │ ├── TextFinder.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── replacer
│ │ │ │ │ ├── LookupReplacer.java
│ │ │ │ │ ├── ReplacerChain.java
│ │ │ │ │ ├── StrReplacer.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── split
│ │ │ │ └── SplitIter.java
│ │ │ ├── thread
│ │ │ │ ├── AsyncUtil.java
│ │ │ │ ├── BlockPolicy.java
│ │ │ │ ├── ConcurrencyTester.java
│ │ │ │ ├── DelegatedExecutorService.java
│ │ │ │ ├── ExecutorBuilder.java
│ │ │ │ ├── FinalizableDelegatedExecutorService.java
│ │ │ │ ├── GlobalThreadPool.java
│ │ │ │ ├── NamedThreadFactory.java
│ │ │ │ ├── RejectPolicy.java
│ │ │ │ ├── SemaphoreRunnable.java
│ │ │ │ ├── SyncFinisher.java
│ │ │ │ ├── ThreadException.java
│ │ │ │ ├── ThreadFactoryBuilder.java
│ │ │ │ ├── ThreadUtil.java
│ │ │ │ ├── lock
│ │ │ │ │ ├── LockUtil.java
│ │ │ │ │ ├── NoLock.java
│ │ │ │ │ ├── NoReadWriteLock.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── threadlocal
│ │ │ │ ├── NamedInheritableThreadLocal.java
│ │ │ │ ├── NamedThreadLocal.java
│ │ │ │ └── package-info.java
│ │ │ └── util
│ │ │ ├── ArrayUtil.java
│ │ │ ├── BooleanUtil.java
│ │ │ ├── ByteUtil.java
│ │ │ ├── CharUtil.java
│ │ │ ├── CharsetUtil.java
│ │ │ ├── ClassLoaderUtil.java
│ │ │ ├── ClassUtil.java
│ │ │ ├── CoordinateUtil.java
│ │ │ ├── CreditCodeUtil.java
│ │ │ ├── DesensitizedUtil.java
│ │ │ ├── EnumUtil.java
│ │ │ ├── EscapeUtil.java
│ │ │ ├── HashUtil.java
│ │ │ ├── HexUtil.java
│ │ │ ├── IdUtil.java
│ │ │ ├── IdcardUtil.java
│ │ │ ├── JAXBUtil.java
│ │ │ ├── JNDIUtil.java
│ │ │ ├── ModifierUtil.java
│ │ │ ├── NumberUtil.java
│ │ │ ├── ObjectUtil.java
│ │ │ ├── PageUtil.java
│ │ │ ├── PhoneUtil.java
│ │ │ ├── PrimitiveArrayUtil.java
│ │ │ ├── RadixUtil.java
│ │ │ ├── RandomUtil.java
│ │ │ ├── ReUtil.java
│ │ │ ├── ReferenceUtil.java
│ │ │ ├── ReflectUtil.java
│ │ │ ├── RuntimeUtil.java
│ │ │ ├── SerializeUtil.java
│ │ │ ├── ServiceLoaderUtil.java
│ │ │ ├── StrUtil.java
│ │ │ ├── SystemPropsUtil.java
│ │ │ ├── TypeUtil.java
│ │ │ ├── URLUtil.java
│ │ │ ├── XmlUtil.java
│ │ │ ├── ZipUtil.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── core
│ │ │ ├── annotation
│ │ │ │ ├── AnnotationForTest.java
│ │ │ │ ├── AnnotationUtilTest.java
│ │ │ │ └── RepeatAnnotationForTest.java
│ │ │ ├── bean
│ │ │ │ ├── BeanCopyMappingTest.java
│ │ │ │ ├── BeanDescTest.java
│ │ │ │ ├── BeanPathTest.java
│ │ │ │ ├── BeanUtilTest.java
│ │ │ │ ├── DynaBeanTest.java
│ │ │ │ ├── Issue1687Test.java
│ │ │ │ ├── Issue2009Test.java
│ │ │ │ ├── Issue2082Test.java
│ │ │ │ ├── Issue2202Test.java
│ │ │ │ └── copier
│ │ │ │ └── BeanCopierTest.java
│ │ │ ├── builder
│ │ │ │ └── GenericBuilderTest.java
│ │ │ ├── clone
│ │ │ │ ├── CloneTest.java
│ │ │ │ └── DefaultCloneTest.java
│ │ │ ├── codec
│ │ │ │ ├── BCDTest.java
│ │ │ │ ├── Base32Test.java
│ │ │ │ ├── Base58Test.java
│ │ │ │ ├── Base62Test.java
│ │ │ │ ├── Base64Test.java
│ │ │ │ ├── CaesarTest.java
│ │ │ │ ├── HashidsTest.java
│ │ │ │ ├── MorseTest.java
│ │ │ │ ├── PunyCodeTest.java
│ │ │ │ └── RotTest.java
│ │ │ ├── collection
│ │ │ │ ├── CollStreamUtilTest.java
│ │ │ │ ├── CollUtilTest.java
│ │ │ │ ├── IterUtilTest.java
│ │ │ │ ├── ListUtilTest.java
│ │ │ │ ├── MapProxyTest.java
│ │ │ │ ├── PartitionIterTest.java
│ │ │ │ ├── RingIndexUtilTest.java
│ │ │ │ └── UniqueKeySetTest.java
│ │ │ ├── comparator
│ │ │ │ ├── CompareUtilTest.java
│ │ │ │ └── VersionComparatorTest.java
│ │ │ ├── compiler
│ │ │ │ └── JavaSourceCompilerTest.java
│ │ │ ├── compress
│ │ │ │ ├── ZipReaderTest.java
│ │ │ │ └── ZipWriterTest.java
│ │ │ ├── convert
│ │ │ │ ├── ConvertOtherTest.java
│ │ │ │ ├── ConvertTest.java
│ │ │ │ ├── ConvertToArrayTest.java
│ │ │ │ ├── ConvertToBeanTest.java
│ │ │ │ ├── ConvertToBooleanTest.java
│ │ │ │ ├── ConvertToCollectionTest.java
│ │ │ │ ├── ConvertToNumberTest.java
│ │ │ │ ├── ConvertToSBCAndDBCTest.java
│ │ │ │ ├── ConverterRegistryTest.java
│ │ │ │ ├── DateConvertTest.java
│ │ │ │ ├── EnumConvertTest.java
│ │ │ │ ├── MapConvertTest.java
│ │ │ │ ├── NumberChineseFormatterTest.java
│ │ │ │ ├── NumberConverterTest.java
│ │ │ │ ├── NumberWordFormatTest.java
│ │ │ │ ├── PrimitiveConvertTest.java
│ │ │ │ ├── StringConvertTest.java
│ │ │ │ └── TemporalAccessorConverterTest.java
│ │ │ ├── date
│ │ │ │ ├── BetweenFormatterTest.java
│ │ │ │ ├── CalendarUtilTest.java
│ │ │ │ ├── ChineseDateTest.java
│ │ │ │ ├── DateBetweenTest.java
│ │ │ │ ├── DateFieldTest.java
│ │ │ │ ├── DateModifierTest.java
│ │ │ │ ├── DateTimeTest.java
│ │ │ │ ├── DateUtilTest.java
│ │ │ │ ├── GanzhiTest.java
│ │ │ │ ├── LocalDateTimeUtilTest.java
│ │ │ │ ├── MonthTest.java
│ │ │ │ ├── TemporalAccessorUtilTest.java
│ │ │ │ ├── TimeIntervalTest.java
│ │ │ │ ├── TimeZoneTest.java
│ │ │ │ ├── WeekTest.java
│ │ │ │ ├── ZodiacTest.java
│ │ │ │ └── chinese
│ │ │ │ └── SolarTermsTest.java
│ │ │ ├── exceptions
│ │ │ │ ├── CheckedUtilTest.java
│ │ │ │ └── ExceptionUtilTest.java
│ │ │ ├── img
│ │ │ │ ├── FontUtilTest.java
│ │ │ │ ├── ImgTest.java
│ │ │ │ └── ImgUtilTest.java
│ │ │ ├── io
│ │ │ │ ├── BufferUtilTest.java
│ │ │ │ ├── CharsetDetectorTest.java
│ │ │ │ ├── ClassPathResourceTest.java
│ │ │ │ ├── FileCopierTest.java
│ │ │ │ ├── FileReaderTest.java
│ │ │ │ ├── FileTypeUtilTest.java
│ │ │ │ ├── FileUtilTest.java
│ │ │ │ ├── IoUtilTest.java
│ │ │ │ ├── ManifestUtilTest.java
│ │ │ │ ├── WatchMonitorTest.java
│ │ │ │ ├── checksum
│ │ │ │ │ ├── CRC16Test.java
│ │ │ │ │ └── CrcTest.java
│ │ │ │ ├── file
│ │ │ │ │ ├── FileSystemUtilTest.java
│ │ │ │ │ ├── PathUtilTest.java
│ │ │ │ │ └── TailerTest.java
│ │ │ │ ├── resource
│ │ │ │ │ └── ResourceUtilTest.java
│ │ │ │ └── unit
│ │ │ │ └── DataSizeUtilTest.java
│ │ │ ├── lang
│ │ │ │ ├── AssertTest.java
│ │ │ │ ├── ClassScanerTest.java
│ │ │ │ ├── ConsoleTableTest.java
│ │ │ │ ├── ConsoleTest.java
│ │ │ │ ├── DictTest.java
│ │ │ │ ├── NanoIdTest.java
│ │ │ │ ├── ObjectIdTest.java
│ │ │ │ ├── OptTest.java
│ │ │ │ ├── RangeTest.java
│ │ │ │ ├── SimhashTest.java
│ │ │ │ ├── SimpleCacheTest.java
│ │ │ │ ├── SingletonTest.java
│ │ │ │ ├── SnowflakeTest.java
│ │ │ │ ├── StrFormatterTest.java
│ │ │ │ ├── TupleTest.java
│ │ │ │ ├── UUIDTest.java
│ │ │ │ ├── ValidatorTest.java
│ │ │ │ ├── WeightRandomTest.java
│ │ │ │ ├── ansi
│ │ │ │ │ └── AnsiEncoderTest.java
│ │ │ │ ├── caller
│ │ │ │ │ ├── CallerTest.java
│ │ │ │ │ └── CallerUtilTest.java
│ │ │ │ ├── func
│ │ │ │ │ └── LambdaUtilTest.java
│ │ │ │ ├── hash
│ │ │ │ │ ├── CityHashTest.java
│ │ │ │ │ ├── MetroHashTest.java
│ │ │ │ │ └── MurMurHashTest.java
│ │ │ │ ├── intern
│ │ │ │ │ └── InternUtilTest.java
│ │ │ │ ├── loader
│ │ │ │ │ └── LazyFunLoaderTest.java
│ │ │ │ ├── reflect
│ │ │ │ │ ├── ActualTypeMapperPoolTest.java
│ │ │ │ │ └── MethodHandleUtilTest.java
│ │ │ │ ├── test
│ │ │ │ │ └── bean
│ │ │ │ │ ├── ExamInfoDict.java
│ │ │ │ │ ├── UserInfoDict.java
│ │ │ │ │ └── UserInfoRedundCount.java
│ │ │ │ └── tree
│ │ │ │ ├── TreeBuilderTest.java
│ │ │ │ ├── TreeSearchTest.java
│ │ │ │ └── TreeTest.java
│ │ │ ├── map
│ │ │ │ ├── BiMapTest.java
│ │ │ │ ├── CamelCaseMapTest.java
│ │ │ │ ├── CaseInsensitiveMapTest.java
│ │ │ │ ├── FuncMapTest.java
│ │ │ │ ├── MapBuilderTest.java
│ │ │ │ ├── MapUtilTest.java
│ │ │ │ ├── RowKeyTableTest.java
│ │ │ │ ├── TableMapTest.java
│ │ │ │ ├── TolerantMapTest.java
│ │ │ │ └── WeakConcurrentMapTest.java
│ │ │ ├── math
│ │ │ │ ├── ArrangementTest.java
│ │ │ │ ├── CalculatorTest.java
│ │ │ │ ├── CombinationTest.java
│ │ │ │ └── MoneyTest.java
│ │ │ ├── net
│ │ │ │ ├── FormUrlencodedTest.java
│ │ │ │ ├── Ipv4UtilTest.java
│ │ │ │ ├── NetUtilTest.java
│ │ │ │ ├── RFC3986Test.java
│ │ │ │ ├── UrlBuilderTest.java
│ │ │ │ ├── UrlDecoderTest.java
│ │ │ │ └── UrlQueryTest.java
│ │ │ ├── stream
│ │ │ │ └── StreamUtilTest.java
│ │ │ ├── swing
│ │ │ │ ├── ClipboardMonitorTest.java
│ │ │ │ ├── ClipboardUtilTest.java
│ │ │ │ ├── DesktopUtilTest.java
│ │ │ │ └── RobotUtilTest.java
│ │ │ ├── text
│ │ │ │ ├── AntPathMatcherTest.java
│ │ │ │ ├── CharSequenceUtilTest.java
│ │ │ │ ├── NamingCaseTest.java
│ │ │ │ ├── PasswdStrengthTest.java
│ │ │ │ ├── StrBuilderTest.java
│ │ │ │ ├── StrJoinerTest.java
│ │ │ │ ├── StrMatcherTest.java
│ │ │ │ ├── TextSimilarityTest.java
│ │ │ │ ├── UnicodeUtilTest.java
│ │ │ │ ├── csv
│ │ │ │ │ ├── CsvParserTest.java
│ │ │ │ │ ├── CsvReaderTest.java
│ │ │ │ │ ├── CsvUtilTest.java
│ │ │ │ │ └── CsvWriterTest.java
│ │ │ │ ├── finder
│ │ │ │ │ └── CharFinderTest.java
│ │ │ │ └── split
│ │ │ │ ├── SplitIterTest.java
│ │ │ │ └── StrSplitterTest.java
│ │ │ ├── thread
│ │ │ │ ├── AsyncUtilTest.java
│ │ │ │ ├── ConcurrencyTesterTest.java
│ │ │ │ └── ThreadUtilTest.java
│ │ │ └── util
│ │ │ ├── ArrayUtilTest.java
│ │ │ ├── BooleanUtilTest.java
│ │ │ ├── ByteUtilTest.java
│ │ │ ├── CharUtilTest.java
│ │ │ ├── ClassLoaderUtilTest.java
│ │ │ ├── ClassUtilTest.java
│ │ │ ├── CoordinateUtilTest.java
│ │ │ ├── CreditCodeUtilTest.java
│ │ │ ├── DesensitizedUtilTest.java
│ │ │ ├── EnumUtilTest.java
│ │ │ ├── EscapeUtilTest.java
│ │ │ ├── HashUtilTest.java
│ │ │ ├── HexUtilTest.java
│ │ │ ├── IdUtilTest.java
│ │ │ ├── IdcardUtilTest.java
│ │ │ ├── JAXBUtilTest.java
│ │ │ ├── JNDIUtilTest.java
│ │ │ ├── ModifierUtilTest.java
│ │ │ ├── NumberUtilTest.java
│ │ │ ├── ObjectUtilTest.java
│ │ │ ├── PageUtilTest.java
│ │ │ ├── PhoneUtilTest.java
│ │ │ ├── RandomUtilTest.java
│ │ │ ├── ReUtilTest.java
│ │ │ ├── ReferenceUtilTest.java
│ │ │ ├── ReflectUtilTest.java
│ │ │ ├── RuntimeUtilTest.java
│ │ │ ├── StrUtilTest.java
│ │ │ ├── TypeUtilTest.java
│ │ │ ├── URLUtilTest.java
│ │ │ ├── XmlUtilTest.java
│ │ │ └── ZipUtilTest.java
│ │ └── resources
│ │ ├── hutool.jpg
│ │ ├── test-compile
│ │ │ ├── a
│ │ │ │ ├── A$1.class
│ │ │ │ ├── A$InnerClass.class
│ │ │ │ ├── A.class
│ │ │ │ └── A.java
│ │ │ ├── b
│ │ │ │ ├── B.class
│ │ │ │ └── B.java
│ │ │ └── c
│ │ │ ├── C.class
│ │ │ └── C.java
│ │ ├── test-zip
│ │ │ ├── addFile.txt
│ │ │ ├── test-add
│ │ │ │ └── test.txt
│ │ │ └── test.zip
│ │ ├── test.csv
│ │ ├── test.properties
│ │ ├── test.xml
│ │ ├── test_bean.csv
│ │ └── test_lines.csv
│ ├── hutool-cron
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── cron
│ │ │ ├── CronConfig.java
│ │ │ ├── CronException.java
│ │ │ ├── CronTimer.java
│ │ │ ├── CronUtil.java
│ │ │ ├── Scheduler.java
│ │ │ ├── TaskExecutor.java
│ │ │ ├── TaskExecutorManager.java
│ │ │ ├── TaskLauncher.java
│ │ │ ├── TaskLauncherManager.java
│ │ │ ├── TaskTable.java
│ │ │ ├── listener
│ │ │ │ ├── SimpleTaskListener.java
│ │ │ │ ├── TaskListener.java
│ │ │ │ ├── TaskListenerManager.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── pattern
│ │ │ │ ├── CronPattern.java
│ │ │ │ ├── CronPatternBuilder.java
│ │ │ │ ├── CronPatternUtil.java
│ │ │ │ ├── Part.java
│ │ │ │ ├── PatternUtil.java
│ │ │ │ ├── matcher
│ │ │ │ │ ├── AlwaysTrueMatcher.java
│ │ │ │ │ ├── BoolArrayMatcher.java
│ │ │ │ │ ├── DayOfMonthMatcher.java
│ │ │ │ │ ├── PartMatcher.java
│ │ │ │ │ ├── PatternMatcher.java
│ │ │ │ │ ├── YearValueMatcher.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── parser
│ │ │ │ ├── PartParser.java
│ │ │ │ ├── PatternParser.java
│ │ │ │ └── package-info.java
│ │ │ ├── task
│ │ │ │ ├── CronTask.java
│ │ │ │ ├── InvokeTask.java
│ │ │ │ ├── RunnableTask.java
│ │ │ │ ├── Task.java
│ │ │ │ └── package-info.java
│ │ │ └── timingwheel
│ │ │ ├── SystemTimer.java
│ │ │ ├── TimerTask.java
│ │ │ ├── TimerTaskList.java
│ │ │ ├── TimingWheel.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── cron
│ │ │ ├── TaskTableTest.java
│ │ │ ├── demo
│ │ │ │ ├── AddAndRemoveMainTest.java
│ │ │ │ ├── CronTest.java
│ │ │ │ ├── DeamonMainTest.java
│ │ │ │ ├── JobMainTest.java
│ │ │ │ ├── TestJob.java
│ │ │ │ └── TestJob2.java
│ │ │ └── pattern
│ │ │ ├── CronPatternBuilderTest.java
│ │ │ ├── CronPatternNextMatchTest.java
│ │ │ ├── CronPatternTest.java
│ │ │ └── CronPatternUtilTest.java
│ │ └── resources
│ │ └── config
│ │ └── cron.setting
│ ├── hutool-crypto
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── crypto
│ │ │ ├── ASN1Util.java
│ │ │ ├── BCUtil.java
│ │ │ ├── CipherMode.java
│ │ │ ├── CipherWrapper.java
│ │ │ ├── CryptoException.java
│ │ │ ├── ECKeyUtil.java
│ │ │ ├── GlobalBouncyCastleProvider.java
│ │ │ ├── KeyUtil.java
│ │ │ ├── Mode.java
│ │ │ ├── Padding.java
│ │ │ ├── PemUtil.java
│ │ │ ├── ProviderFactory.java
│ │ │ ├── SecureUtil.java
│ │ │ ├── SignUtil.java
│ │ │ ├── SmUtil.java
│ │ │ ├── asymmetric
│ │ │ │ ├── AbstractAsymmetricCrypto.java
│ │ │ │ ├── AsymmetricAlgorithm.java
│ │ │ │ ├── AsymmetricCrypto.java
│ │ │ │ ├── AsymmetricDecryptor.java
│ │ │ │ ├── AsymmetricEncryptor.java
│ │ │ │ ├── BaseAsymmetric.java
│ │ │ │ ├── ECIES.java
│ │ │ │ ├── KeyType.java
│ │ │ │ ├── RSA.java
│ │ │ │ ├── SM2.java
│ │ │ │ ├── Sign.java
│ │ │ │ ├── SignAlgorithm.java
│ │ │ │ └── package-info.java
│ │ │ ├── digest
│ │ │ │ ├── BCrypt.java
│ │ │ │ ├── DigestAlgorithm.java
│ │ │ │ ├── DigestUtil.java
│ │ │ │ ├── Digester.java
│ │ │ │ ├── HMac.java
│ │ │ │ ├── HmacAlgorithm.java
│ │ │ │ ├── MD5.java
│ │ │ │ ├── SM3.java
│ │ │ │ ├── mac
│ │ │ │ │ ├── BCHMacEngine.java
│ │ │ │ │ ├── BCMacEngine.java
│ │ │ │ │ ├── CBCBlockCipherMacEngine.java
│ │ │ │ │ ├── DefaultHMacEngine.java
│ │ │ │ │ ├── Mac.java
│ │ │ │ │ ├── MacEngine.java
│ │ │ │ │ ├── MacEngineFactory.java
│ │ │ │ │ ├── SM4MacEngine.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── otp
│ │ │ │ │ ├── HOTP.java
│ │ │ │ │ ├── TOTP.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── symmetric
│ │ │ ├── AES.java
│ │ │ ├── ChaCha20.java
│ │ │ ├── DES.java
│ │ │ ├── DESede.java
│ │ │ ├── PBKDF2.java
│ │ │ ├── RC4.java
│ │ │ ├── SM4.java
│ │ │ ├── SymmetricAlgorithm.java
│ │ │ ├── SymmetricCrypto.java
│ │ │ ├── SymmetricDecryptor.java
│ │ │ ├── SymmetricEncryptor.java
│ │ │ ├── Vigenere.java
│ │ │ ├── XXTEA.java
│ │ │ ├── ZUC.java
│ │ │ ├── fpe
│ │ │ │ └── FPE.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── crypto
│ │ │ └── test
│ │ │ ├── BCUtilTest.java
│ │ │ ├── KeyUtilTest.java
│ │ │ ├── PemUtilTest.java
│ │ │ ├── SmTest.java
│ │ │ ├── asymmetric
│ │ │ │ ├── ECIESTest.java
│ │ │ │ ├── RSATest.java
│ │ │ │ ├── SM2Test.java
│ │ │ │ └── SignTest.java
│ │ │ ├── digest
│ │ │ │ ├── BCryptTest.java
│ │ │ │ ├── CBCBlockCipherMacEngineTest.java
│ │ │ │ ├── DigestTest.java
│ │ │ │ ├── HmacTest.java
│ │ │ │ ├── Md5Test.java
│ │ │ │ └── OTPTest.java
│ │ │ └── symmetric
│ │ │ ├── AESTest.java
│ │ │ ├── ChaCha20Test.java
│ │ │ ├── DesTest.java
│ │ │ ├── PBKDF2Test.java
│ │ │ ├── RC4Test.java
│ │ │ ├── Sm4StreamTest.java
│ │ │ ├── SymmetricTest.java
│ │ │ ├── TEATest.java
│ │ │ ├── ZucTest.java
│ │ │ └── fpe
│ │ │ └── FPETest.java
│ │ └── resources
│ │ ├── asn1.key
│ │ ├── test_ec_private_key.pem
│ │ ├── test_private_key.pem
│ │ └── test_public_key.csr
│ ├── hutool-db
│ │ ├── pom.xml
│ │ ├── src
│ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ └── cn
│ │ │ │ └── hutool
│ │ │ │ └── db
│ │ │ │ ├── AbstractDb.java
│ │ │ │ ├── ActiveEntity.java
│ │ │ │ ├── DaoTemplate.java
│ │ │ │ ├── Db.java
│ │ │ │ ├── DbRuntimeException.java
│ │ │ │ ├── DbUtil.java
│ │ │ │ ├── DialectRunner.java
│ │ │ │ ├── Entity.java
│ │ │ │ ├── GlobalDbConfig.java
│ │ │ │ ├── Page.java
│ │ │ │ ├── PageResult.java
│ │ │ │ ├── Session.java
│ │ │ │ ├── SqlConnRunner.java
│ │ │ │ ├── StatementUtil.java
│ │ │ │ ├── ThreadLocalConnection.java
│ │ │ │ ├── dialect
│ │ │ │ │ ├── Dialect.java
│ │ │ │ │ ├── DialectFactory.java
│ │ │ │ │ ├── DialectName.java
│ │ │ │ │ ├── DriverNamePool.java
│ │ │ │ │ ├── DriverUtil.java
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── AnsiSqlDialect.java
│ │ │ │ │ │ ├── H2Dialect.java
│ │ │ │ │ │ ├── MysqlDialect.java
│ │ │ │ │ │ ├── OracleDialect.java
│ │ │ │ │ │ ├── PhoenixDialect.java
│ │ │ │ │ │ ├── PostgresqlDialect.java
│ │ │ │ │ │ ├── SqlServer2012Dialect.java
│ │ │ │ │ │ ├── Sqlite3Dialect.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── ds
│ │ │ │ │ ├── AbstractDSFactory.java
│ │ │ │ │ ├── DSFactory.java
│ │ │ │ │ ├── DataSourceWrapper.java
│ │ │ │ │ ├── GlobalDSFactory.java
│ │ │ │ │ ├── bee
│ │ │ │ │ │ ├── BeeDSFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── c3p0
│ │ │ │ │ │ ├── C3p0DSFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── dbcp
│ │ │ │ │ │ ├── DbcpDSFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── druid
│ │ │ │ │ │ ├── DruidDSFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── hikari
│ │ │ │ │ │ ├── HikariDSFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── jndi
│ │ │ │ │ │ ├── JndiDSFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── pooled
│ │ │ │ │ │ ├── ConnectionWraper.java
│ │ │ │ │ │ ├── DbConfig.java
│ │ │ │ │ │ ├── DbSetting.java
│ │ │ │ │ │ ├── PooledConnection.java
│ │ │ │ │ │ ├── PooledDSFactory.java
│ │ │ │ │ │ ├── PooledDataSource.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── simple
│ │ │ │ │ │ ├── AbstractDataSource.java
│ │ │ │ │ │ ├── SimpleDSFactory.java
│ │ │ │ │ │ ├── SimpleDataSource.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── tomcat
│ │ │ │ │ ├── TomcatDSFactory.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── handler
│ │ │ │ │ ├── BeanHandler.java
│ │ │ │ │ ├── BeanListHandler.java
│ │ │ │ │ ├── EntityHandler.java
│ │ │ │ │ ├── EntityListHandler.java
│ │ │ │ │ ├── EntitySetHandler.java
│ │ │ │ │ ├── HandleHelper.java
│ │ │ │ │ ├── NumberHandler.java
│ │ │ │ │ ├── PageResultHandler.java
│ │ │ │ │ ├── RsHandler.java
│ │ │ │ │ ├── StringHandler.java
│ │ │ │ │ ├── ValueListHandler.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── meta
│ │ │ │ │ ├── Column.java
│ │ │ │ │ ├── ColumnIndexInfo.java
│ │ │ │ │ ├── IndexInfo.java
│ │ │ │ │ ├── JdbcType.java
│ │ │ │ │ ├── MetaUtil.java
│ │ │ │ │ ├── Table.java
│ │ │ │ │ ├── TableType.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── nosql
│ │ │ │ │ ├── mongo
│ │ │ │ │ │ ├── MongoDS.java
│ │ │ │ │ │ ├── MongoFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ └── redis
│ │ │ │ │ ├── RedisDS.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── sql
│ │ │ │ │ ├── Condition.java
│ │ │ │ │ ├── ConditionBuilder.java
│ │ │ │ │ ├── ConditionGroup.java
│ │ │ │ │ ├── Direction.java
│ │ │ │ │ ├── LogicalOperator.java
│ │ │ │ │ ├── NamedSql.java
│ │ │ │ │ ├── Order.java
│ │ │ │ │ ├── Query.java
│ │ │ │ │ ├── SqlBuilder.java
│ │ │ │ │ ├── SqlExecutor.java
│ │ │ │ │ ├── SqlFormatter.java
│ │ │ │ │ ├── SqlLog.java
│ │ │ │ │ ├── SqlUtil.java
│ │ │ │ │ ├── StatementWrapper.java
│ │ │ │ │ ├── Wrapper.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── transaction
│ │ │ │ ├── TransactionLevel.java
│ │ │ │ └── package-info.java
│ │ │ └── test
│ │ │ ├── java
│ │ │ │ └── cn
│ │ │ │ └── hutool
│ │ │ │ └── db
│ │ │ │ ├── CRUDTest.java
│ │ │ │ ├── ConcurentTest.java
│ │ │ │ ├── DbTest.java
│ │ │ │ ├── DerbyTest.java
│ │ │ │ ├── DsTest.java
│ │ │ │ ├── EntityTest.java
│ │ │ │ ├── FindBeanTest.java
│ │ │ │ ├── H2Test.java
│ │ │ │ ├── HsqldbTest.java
│ │ │ │ ├── MySQLTest.java
│ │ │ │ ├── NamedSqlTest.java
│ │ │ │ ├── OracleTest.java
│ │ │ │ ├── PageResultTest.java
│ │ │ │ ├── PageTest.java
│ │ │ │ ├── PicTransferTest.java
│ │ │ │ ├── PostgreTest.java
│ │ │ │ ├── SessionTest.java
│ │ │ │ ├── SqlServerTest.java
│ │ │ │ ├── UpdateTest.java
│ │ │ │ ├── dialect
│ │ │ │ │ └── DriverUtilTest.java
│ │ │ │ ├── ds
│ │ │ │ │ └── DataSourceWrapperTest.java
│ │ │ │ ├── meta
│ │ │ │ │ └── MetaUtilTest.java
│ │ │ │ ├── nosql
│ │ │ │ │ ├── MongoDBTest.java
│ │ │ │ │ └── RedisDSTest.java
│ │ │ │ ├── pojo
│ │ │ │ │ └── User.java
│ │ │ │ └── sql
│ │ │ │ ├── ConditionBuilderTest.java
│ │ │ │ ├── ConditionGroupTest.java
│ │ │ │ ├── ConditionTest.java
│ │ │ │ ├── SqlBuilderTest.java
│ │ │ │ └── SqlFormatterTest.java
│ │ │ └── resources
│ │ │ ├── config
│ │ │ │ ├── db.setting
│ │ │ │ ├── example
│ │ │ │ │ ├── db-example-c3p0.setting
│ │ │ │ │ ├── db-example-dbcp.setting
│ │ │ │ │ ├── db-example-druid.setting
│ │ │ │ │ ├── db-example-hikari.setting
│ │ │ │ │ ├── db-example-tomcat.setting
│ │ │ │ │ └── mongo-example.setting
│ │ │ │ ├── mongo.setting
│ │ │ │ └── redis.setting
│ │ │ ├── logback.xml
│ │ │ └── simplelogger.properties
│ │ └── test.db
│ ├── hutool-dfa
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── dfa
│ │ │ ├── FoundWord.java
│ │ │ ├── SensitiveProcessor.java
│ │ │ ├── SensitiveUtil.java
│ │ │ ├── StopChar.java
│ │ │ ├── WordTree.java
│ │ │ └── package-info.java
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── dfa
│ │ ├── DfaTest.java
│ │ └── SensitiveUtilTest.java
│ ├── hutool-extra
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── cn
│ │ │ │ └── hutool
│ │ │ │ └── extra
│ │ │ │ ├── cglib
│ │ │ │ │ ├── BeanCopierCache.java
│ │ │ │ │ ├── CglibUtil.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── compress
│ │ │ │ │ ├── CompressException.java
│ │ │ │ │ ├── CompressUtil.java
│ │ │ │ │ ├── archiver
│ │ │ │ │ │ ├── Archiver.java
│ │ │ │ │ │ ├── SevenZArchiver.java
│ │ │ │ │ │ ├── StreamArchiver.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── extractor
│ │ │ │ │ │ ├── Extractor.java
│ │ │ │ │ │ ├── Seven7EntryInputStream.java
│ │ │ │ │ │ ├── SevenZExtractor.java
│ │ │ │ │ │ ├── StreamExtractor.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── emoji
│ │ │ │ │ ├── EmojiUtil.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── expression
│ │ │ │ │ ├── ExpressionEngine.java
│ │ │ │ │ ├── ExpressionException.java
│ │ │ │ │ ├── ExpressionUtil.java
│ │ │ │ │ ├── engine
│ │ │ │ │ │ ├── ExpressionFactory.java
│ │ │ │ │ │ ├── aviator
│ │ │ │ │ │ │ ├── AviatorEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── jexl
│ │ │ │ │ │ │ ├── JexlEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── jfireel
│ │ │ │ │ │ │ ├── JfireELEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── mvel
│ │ │ │ │ │ │ ├── MvelEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── package-info.java
│ │ │ │ │ │ ├── rhino
│ │ │ │ │ │ │ ├── RhinoEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ └── spel
│ │ │ │ │ │ ├── SpELEngine.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── ftp
│ │ │ │ │ ├── AbstractFtp.java
│ │ │ │ │ ├── Ftp.java
│ │ │ │ │ ├── FtpConfig.java
│ │ │ │ │ ├── FtpException.java
│ │ │ │ │ ├── FtpMode.java
│ │ │ │ │ ├── SimpleFtpServer.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── mail
│ │ │ │ │ ├── GlobalMailAccount.java
│ │ │ │ │ ├── InternalMailUtil.java
│ │ │ │ │ ├── Mail.java
│ │ │ │ │ ├── MailAccount.java
│ │ │ │ │ ├── MailException.java
│ │ │ │ │ ├── MailUtil.java
│ │ │ │ │ ├── UserPassAuthenticator.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── pinyin
│ │ │ │ │ ├── PinyinEngine.java
│ │ │ │ │ ├── PinyinException.java
│ │ │ │ │ ├── PinyinUtil.java
│ │ │ │ │ ├── engine
│ │ │ │ │ │ ├── PinyinFactory.java
│ │ │ │ │ │ ├── bopomofo4j
│ │ │ │ │ │ │ ├── Bopomofo4jEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── houbbpinyin
│ │ │ │ │ │ │ ├── HoubbPinyinEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── jpinyin
│ │ │ │ │ │ │ ├── JPinyinEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── package-info.java
│ │ │ │ │ │ ├── pinyin4j
│ │ │ │ │ │ │ ├── Pinyin4jEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ └── tinypinyin
│ │ │ │ │ │ ├── TinyPinyinEngine.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── qrcode
│ │ │ │ │ ├── BufferedImageLuminanceSource.java
│ │ │ │ │ ├── QrCodeException.java
│ │ │ │ │ ├── QrCodeUtil.java
│ │ │ │ │ ├── QrConfig.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── servlet
│ │ │ │ │ ├── JakartaServletUtil.java
│ │ │ │ │ ├── ServletUtil.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── spring
│ │ │ │ │ ├── EnableSpringUtil.java
│ │ │ │ │ ├── SpringUtil.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── ssh
│ │ │ │ │ ├── ChannelType.java
│ │ │ │ │ ├── Connector.java
│ │ │ │ │ ├── GanymedUtil.java
│ │ │ │ │ ├── JschRuntimeException.java
│ │ │ │ │ ├── JschSessionPool.java
│ │ │ │ │ ├── JschUtil.java
│ │ │ │ │ ├── Sftp.java
│ │ │ │ │ ├── SshjSftp.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── template
│ │ │ │ │ ├── AbstractTemplate.java
│ │ │ │ │ ├── Template.java
│ │ │ │ │ ├── TemplateConfig.java
│ │ │ │ │ ├── TemplateEngine.java
│ │ │ │ │ ├── TemplateException.java
│ │ │ │ │ ├── TemplateUtil.java
│ │ │ │ │ ├── engine
│ │ │ │ │ │ ├── TemplateFactory.java
│ │ │ │ │ │ ├── beetl
│ │ │ │ │ │ │ ├── BeetlEngine.java
│ │ │ │ │ │ │ ├── BeetlTemplate.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── enjoy
│ │ │ │ │ │ │ ├── EnjoyEngine.java
│ │ │ │ │ │ │ ├── EnjoyTemplate.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── freemarker
│ │ │ │ │ │ │ ├── FreemarkerEngine.java
│ │ │ │ │ │ │ ├── FreemarkerTemplate.java
│ │ │ │ │ │ │ ├── SimpleStringTemplateLoader.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── jetbrick
│ │ │ │ │ │ │ ├── JetbrickEngine.java
│ │ │ │ │ │ │ ├── JetbrickTemplate.java
│ │ │ │ │ │ │ ├── loader
│ │ │ │ │ │ │ │ ├── StringResourceLoader.java
│ │ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── package-info.java
│ │ │ │ │ │ ├── rythm
│ │ │ │ │ │ │ ├── RythmEngine.java
│ │ │ │ │ │ │ ├── RythmTemplate.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── thymeleaf
│ │ │ │ │ │ │ ├── ThymeleafEngine.java
│ │ │ │ │ │ │ ├── ThymeleafTemplate.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── velocity
│ │ │ │ │ │ │ ├── SimpleStringResourceLoader.java
│ │ │ │ │ │ │ ├── VelocityEngine.java
│ │ │ │ │ │ │ ├── VelocityTemplate.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ └── wit
│ │ │ │ │ │ ├── WitEngine.java
│ │ │ │ │ │ ├── WitTemplate.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── tokenizer
│ │ │ │ │ ├── AbstractResult.java
│ │ │ │ │ ├── Result.java
│ │ │ │ │ ├── TokenizerEngine.java
│ │ │ │ │ ├── TokenizerException.java
│ │ │ │ │ ├── TokenizerUtil.java
│ │ │ │ │ ├── Word.java
│ │ │ │ │ ├── engine
│ │ │ │ │ │ ├── TokenizerFactory.java
│ │ │ │ │ │ ├── analysis
│ │ │ │ │ │ │ ├── AnalysisEngine.java
│ │ │ │ │ │ │ ├── AnalysisResult.java
│ │ │ │ │ │ │ ├── AnalysisWord.java
│ │ │ │ │ │ │ ├── SmartcnEngine.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── ansj
│ │ │ │ │ │ │ ├── AnsjEngine.java
│ │ │ │ │ │ │ ├── AnsjResult.java
│ │ │ │ │ │ │ ├── AnsjWord.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── hanlp
│ │ │ │ │ │ │ ├── HanLPEngine.java
│ │ │ │ │ │ │ ├── HanLPResult.java
│ │ │ │ │ │ │ ├── HanLPWord.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── ikanalyzer
│ │ │ │ │ │ │ ├── IKAnalyzerEngine.java
│ │ │ │ │ │ │ ├── IKAnalyzerResult.java
│ │ │ │ │ │ │ ├── IKAnalyzerWord.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── jcseg
│ │ │ │ │ │ │ ├── JcsegEngine.java
│ │ │ │ │ │ │ ├── JcsegResult.java
│ │ │ │ │ │ │ ├── JcsegWord.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── jieba
│ │ │ │ │ │ │ ├── JiebaEngine.java
│ │ │ │ │ │ │ ├── JiebaResult.java
│ │ │ │ │ │ │ ├── JiebaWord.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── mmseg
│ │ │ │ │ │ │ ├── MmsegEngine.java
│ │ │ │ │ │ │ ├── MmsegResult.java
│ │ │ │ │ │ │ ├── MmsegWord.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── mynlp
│ │ │ │ │ │ │ ├── MynlpEngine.java
│ │ │ │ │ │ │ ├── MynlpResult.java
│ │ │ │ │ │ │ ├── MynlpWord.java
│ │ │ │ │ │ │ └── package-info.java
│ │ │ │ │ │ ├── package-info.java
│ │ │ │ │ │ └── word
│ │ │ │ │ │ ├── WordEngine.java
│ │ │ │ │ │ ├── WordResult.java
│ │ │ │ │ │ ├── WordWord.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── validation
│ │ │ │ ├── BeanValidationResult.java
│ │ │ │ ├── ValidationUtil.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── services
│ │ │ │ ├── cn.hutool.extra.expression.ExpressionEngine
│ │ │ │ ├── cn.hutool.extra.pinyin.PinyinEngine
│ │ │ │ ├── cn.hutool.extra.template.TemplateEngine
│ │ │ │ └── cn.hutool.extra.tokenizer.TokenizerEngine
│ │ │ └── spring.factories
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── extra
│ │ │ ├── cglib
│ │ │ │ └── CglibUtilTest.java
│ │ │ ├── compress
│ │ │ │ ├── ArchiverTest.java
│ │ │ │ └── ExtractorTest.java
│ │ │ ├── emoji
│ │ │ │ └── EmojiUtilTest.java
│ │ │ ├── expression
│ │ │ │ ├── AviatorTest.java
│ │ │ │ └── ExpressionUtilTest.java
│ │ │ ├── ftp
│ │ │ │ ├── FtpTest.java
│ │ │ │ └── SimpleFtpServerTest.java
│ │ │ ├── mail
│ │ │ │ ├── MailAccountTest.java
│ │ │ │ └── MailTest.java
│ │ │ ├── pinyin
│ │ │ │ ├── Bopomofo4jTest.java
│ │ │ │ ├── HoubbPinyinTest.java
│ │ │ │ ├── JpinyinTest.java
│ │ │ │ ├── Pinyin4jTest.java
│ │ │ │ ├── PinyinUtilTest.java
│ │ │ │ └── TinyPinyinTest.java
│ │ │ ├── qrcode
│ │ │ │ └── QrCodeUtilTest.java
│ │ │ ├── servlet
│ │ │ │ └── ServletUtilTest.java
│ │ │ ├── spring
│ │ │ │ ├── EnableSpringUtilTest.java
│ │ │ │ ├── SpringUtilTest.java
│ │ │ │ └── SpringUtilWithAutoConfigTest.java
│ │ │ ├── ssh
│ │ │ │ ├── JschUtilTest.java
│ │ │ │ └── SftpTest.java
│ │ │ ├── template
│ │ │ │ ├── JetbrickTest.java
│ │ │ │ ├── TemplateUtilTest.java
│ │ │ │ ├── ThymeleafTest.java
│ │ │ │ └── VelocityTest.java
│ │ │ ├── tokenizer
│ │ │ │ └── TokenizerUtilTest.java
│ │ │ └── validation
│ │ │ └── BeanValidatorUtilTest.java
│ │ └── resources
│ │ ├── beetl.properties
│ │ ├── config
│ │ │ └── mail.setting
│ │ ├── example
│ │ │ ├── beetl-example.properties
│ │ │ ├── mail-example.setting
│ │ │ └── velocity-example.vm
│ │ └── templates
│ │ ├── beetl_test.btl
│ │ ├── enjoy_test.etl
│ │ ├── freemarker_test.ftl
│ │ ├── jetbrick_test.jetx
│ │ ├── rythm_test.tmpl
│ │ ├── thymeleaf_test.ttl
│ │ ├── velocity_test.vtl
│ │ ├── velocity_test_gbk.vtl
│ │ └── wit_test.wit
│ ├── hutool-http
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── http
│ │ │ ├── ContentType.java
│ │ │ ├── GlobalHeaders.java
│ │ │ ├── GlobalInterceptor.java
│ │ │ ├── HTMLFilter.java
│ │ │ ├── Header.java
│ │ │ ├── HtmlUtil.java
│ │ │ ├── HttpBase.java
│ │ │ ├── HttpConfig.java
│ │ │ ├── HttpConnection.java
│ │ │ ├── HttpDownloader.java
│ │ │ ├── HttpException.java
│ │ │ ├── HttpGlobalConfig.java
│ │ │ ├── HttpInputStream.java
│ │ │ ├── HttpInterceptor.java
│ │ │ ├── HttpRequest.java
│ │ │ ├── HttpResource.java
│ │ │ ├── HttpResponse.java
│ │ │ ├── HttpStatus.java
│ │ │ ├── HttpUtil.java
│ │ │ ├── Method.java
│ │ │ ├── MultipartOutputStream.java
│ │ │ ├── Status.java
│ │ │ ├── body
│ │ │ │ ├── BytesBody.java
│ │ │ │ ├── FormUrlEncodedBody.java
│ │ │ │ ├── MultipartBody.java
│ │ │ │ ├── RequestBody.java
│ │ │ │ └── package-info.java
│ │ │ ├── cookie
│ │ │ │ ├── GlobalCookieManager.java
│ │ │ │ ├── ThreadLocalCookieStore.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── server
│ │ │ │ ├── HttpServerBase.java
│ │ │ │ ├── HttpServerRequest.java
│ │ │ │ ├── HttpServerResponse.java
│ │ │ │ ├── SimpleServer.java
│ │ │ │ ├── action
│ │ │ │ │ ├── Action.java
│ │ │ │ │ ├── RootAction.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── filter
│ │ │ │ │ ├── HttpFilter.java
│ │ │ │ │ ├── SimpleFilter.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── handler
│ │ │ │ │ ├── ActionHandler.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── ssl
│ │ │ │ ├── AndroidSupportSSLFactory.java
│ │ │ │ ├── CustomProtocolsSSLFactory.java
│ │ │ │ ├── DefaultSSLFactory.java
│ │ │ │ ├── DefaultSSLInfo.java
│ │ │ │ ├── SSLSocketFactoryBuilder.java
│ │ │ │ ├── TrustAnyHostnameVerifier.java
│ │ │ │ └── package-info.java
│ │ │ ├── useragent
│ │ │ │ ├── Browser.java
│ │ │ │ ├── Engine.java
│ │ │ │ ├── OS.java
│ │ │ │ ├── Platform.java
│ │ │ │ ├── UserAgent.java
│ │ │ │ ├── UserAgentInfo.java
│ │ │ │ ├── UserAgentParser.java
│ │ │ │ ├── UserAgentUtil.java
│ │ │ │ └── package-info.java
│ │ │ └── webservice
│ │ │ ├── SoapClient.java
│ │ │ ├── SoapProtocol.java
│ │ │ ├── SoapRuntimeException.java
│ │ │ ├── SoapUtil.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── http
│ │ │ ├── ContentTypeTest.java
│ │ │ ├── DownloadTest.java
│ │ │ ├── HtmlUtilTest.java
│ │ │ ├── HttpRequestTest.java
│ │ │ ├── HttpUtilTest.java
│ │ │ ├── HttpsTest.java
│ │ │ ├── RestTest.java
│ │ │ ├── UploadTest.java
│ │ │ ├── body
│ │ │ │ └── MultipartBodyTest.java
│ │ │ ├── server
│ │ │ │ ├── BlankServerTest.java
│ │ │ │ ├── DocServerTest.java
│ │ │ │ └── SimpleServerTest.java
│ │ │ ├── useragent
│ │ │ │ └── UserAgentUtilTest.java
│ │ │ └── webservice
│ │ │ └── SoapClientTest.java
│ │ └── resources
│ │ └── html
│ │ ├── formForUpload.html
│ │ └── index.html
│ ├── hutool-json
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── json
│ │ │ ├── InternalJSONUtil.java
│ │ │ ├── JSON.java
│ │ │ ├── JSONArray.java
│ │ │ ├── JSONBeanParser.java
│ │ │ ├── JSONConfig.java
│ │ │ ├── JSONConverter.java
│ │ │ ├── JSONException.java
│ │ │ ├── JSONGetter.java
│ │ │ ├── JSONNull.java
│ │ │ ├── JSONObject.java
│ │ │ ├── JSONObjectIter.java
│ │ │ ├── JSONParser.java
│ │ │ ├── JSONStrFormatter.java
│ │ │ ├── JSONString.java
│ │ │ ├── JSONSupport.java
│ │ │ ├── JSONTokener.java
│ │ │ ├── JSONUtil.java
│ │ │ ├── ObjectMapper.java
│ │ │ ├── XML.java
│ │ │ ├── XMLTokener.java
│ │ │ ├── package-info.java
│ │ │ ├── serialize
│ │ │ │ ├── GlobalSerializeMapping.java
│ │ │ │ ├── JSONArraySerializer.java
│ │ │ │ ├── JSONDeserializer.java
│ │ │ │ ├── JSONObjectSerializer.java
│ │ │ │ ├── JSONSerializer.java
│ │ │ │ ├── JSONWriter.java
│ │ │ │ ├── TemporalAccessorSerializer.java
│ │ │ │ └── package-info.java
│ │ │ └── xml
│ │ │ ├── JSONXMLParser.java
│ │ │ ├── JSONXMLSerializer.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── json
│ │ │ ├── CustomSerializeTest.java
│ │ │ ├── Issue1075Test.java
│ │ │ ├── Issue1101Test.java
│ │ │ ├── Issue1200Test.java
│ │ │ ├── Issue2090Test.java
│ │ │ ├── Issue2131Test.java
│ │ │ ├── Issue2223Test.java
│ │ │ ├── Issue488Test.java
│ │ │ ├── Issue644Test.java
│ │ │ ├── Issue677Test.java
│ │ │ ├── Issue867Test.java
│ │ │ ├── IssueI1AU86Test.java
│ │ │ ├── IssueI1F8M2.java
│ │ │ ├── IssueI1H2VN.java
│ │ │ ├── IssueI3BS4S.java
│ │ │ ├── IssueI3EGJP.java
│ │ │ ├── IssueI49VZBTest.java
│ │ │ ├── IssueI4RBZ4Test.java
│ │ │ ├── IssueI4XFMWTest.java
│ │ │ ├── IssueI50EGGTest.java
│ │ │ ├── Issues1881Test.java
│ │ │ ├── IssuesI44E4HTest.java
│ │ │ ├── IssuesI4V14NTest.java
│ │ │ ├── JSONArrayTest.java
│ │ │ ├── JSONBeanParserTest.java
│ │ │ ├── JSONConvertTest.java
│ │ │ ├── JSONNullTest.java
│ │ │ ├── JSONObjectTest.java
│ │ │ ├── JSONPathTest.java
│ │ │ ├── JSONStrFormatterTest.java
│ │ │ ├── JSONSupportTest.java
│ │ │ ├── JSONUtilTest.java
│ │ │ ├── ParseBeanTest.java
│ │ │ ├── Pr192Test.java
│ │ │ ├── TransientTest.java
│ │ │ ├── issueIVMD5
│ │ │ │ ├── BaseResult.java
│ │ │ │ ├── IssueIVMD5Test.java
│ │ │ │ └── StudentInfo.java
│ │ │ ├── test
│ │ │ │ └── bean
│ │ │ │ ├── ADT.java
│ │ │ │ ├── Data.java
│ │ │ │ ├── Exam.java
│ │ │ │ ├── ExamInfoDict.java
│ │ │ │ ├── JSONBean.java
│ │ │ │ ├── JsonNode.java
│ │ │ │ ├── KeyBean.java
│ │ │ │ ├── PerfectEvaluationProductResVo.java
│ │ │ │ ├── Price.java
│ │ │ │ ├── ProductResBase.java
│ │ │ │ ├── ResultBean.java
│ │ │ │ ├── ResultDto.java
│ │ │ │ ├── Seq.java
│ │ │ │ ├── TokenAuthResponse.java
│ │ │ │ ├── TokenAuthWarp.java
│ │ │ │ ├── TokenAuthWarp2.java
│ │ │ │ ├── UUMap.java
│ │ │ │ ├── UserA.java
│ │ │ │ ├── UserB.java
│ │ │ │ ├── UserC.java
│ │ │ │ ├── UserInfoDict.java
│ │ │ │ ├── UserInfoRedundCount.java
│ │ │ │ ├── UserWithMap.java
│ │ │ │ └── report
│ │ │ │ ├── CaseReport.java
│ │ │ │ ├── EnvSettingInfo.java
│ │ │ │ ├── StepReport.java
│ │ │ │ └── SuiteReport.java
│ │ │ └── xml
│ │ │ └── XMLTest.java
│ │ └── resources
│ │ ├── evaluation.json
│ │ ├── exam_test.json
│ │ ├── issue1200.json
│ │ ├── issue488.json
│ │ ├── issue488Array.json
│ │ ├── issueIVMD5.json
│ │ └── suiteReport.json
│ ├── hutool-jwt
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── jwt
│ │ │ ├── Claims.java
│ │ │ ├── JWT.java
│ │ │ ├── JWTException.java
│ │ │ ├── JWTHeader.java
│ │ │ ├── JWTPayload.java
│ │ │ ├── JWTUtil.java
│ │ │ ├── JWTValidator.java
│ │ │ ├── RegisteredPayload.java
│ │ │ ├── package-info.java
│ │ │ └── signers
│ │ │ ├── AlgorithmUtil.java
│ │ │ ├── AsymmetricJWTSigner.java
│ │ │ ├── HMacJWTSigner.java
│ │ │ ├── JWTSigner.java
│ │ │ ├── JWTSignerUtil.java
│ │ │ ├── NoneJWTSigner.java
│ │ │ └── package-info.java
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── jwt
│ │ ├── JWTSignerTest.java
│ │ ├── JWTTest.java
│ │ ├── JWTUtilTest.java
│ │ └── JWTValidatorTest.java
│ ├── hutool-log
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── cn
│ │ │ │ └── hutool
│ │ │ │ └── log
│ │ │ │ ├── AbstractLog.java
│ │ │ │ ├── GlobalLogFactory.java
│ │ │ │ ├── Log.java
│ │ │ │ ├── LogFactory.java
│ │ │ │ ├── StaticLog.java
│ │ │ │ ├── dialect
│ │ │ │ │ ├── commons
│ │ │ │ │ │ ├── ApacheCommonsLog.java
│ │ │ │ │ │ ├── ApacheCommonsLog4JLog.java
│ │ │ │ │ │ ├── ApacheCommonsLogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── console
│ │ │ │ │ │ ├── ConsoleColorLog.java
│ │ │ │ │ │ ├── ConsoleColorLogFactory.java
│ │ │ │ │ │ ├── ConsoleLog.java
│ │ │ │ │ │ ├── ConsoleLogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── jboss
│ │ │ │ │ │ ├── JbossLog.java
│ │ │ │ │ │ ├── JbossLogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── jdk
│ │ │ │ │ │ ├── JdkLog.java
│ │ │ │ │ │ ├── JdkLogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── log4j
│ │ │ │ │ │ ├── Log4jLog.java
│ │ │ │ │ │ ├── Log4jLogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── log4j2
│ │ │ │ │ │ ├── Log4j2Log.java
│ │ │ │ │ │ ├── Log4j2LogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── logtube
│ │ │ │ │ │ ├── LogTubeLog.java
│ │ │ │ │ │ ├── LogTubeLogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── slf4j
│ │ │ │ │ │ ├── Slf4jLog.java
│ │ │ │ │ │ ├── Slf4jLogFactory.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── tinylog
│ │ │ │ │ ├── TinyLog.java
│ │ │ │ │ ├── TinyLog2.java
│ │ │ │ │ ├── TinyLog2Factory.java
│ │ │ │ │ ├── TinyLogFactory.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── level
│ │ │ │ │ ├── DebugLog.java
│ │ │ │ │ ├── ErrorLog.java
│ │ │ │ │ ├── InfoLog.java
│ │ │ │ │ ├── Level.java
│ │ │ │ │ ├── TraceLog.java
│ │ │ │ │ ├── WarnLog.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── cn.hutool.log.LogFactory
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── log
│ │ │ └── test
│ │ │ ├── CustomLogTest.java
│ │ │ ├── LogTest.java
│ │ │ ├── LogTubeTest.java
│ │ │ └── StaticLogTest.java
│ │ └── resources
│ │ ├── example
│ │ │ └── log4j2.xml
│ │ ├── log4j.properties
│ │ ├── log4j2.xml
│ │ ├── logback.xml
│ │ ├── logging.properties
│ │ ├── logtube.properties
│ │ └── tinylog.properties
│ ├── hutool-poi
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── poi
│ │ │ ├── PoiChecker.java
│ │ │ ├── excel
│ │ │ │ ├── BigExcelWriter.java
│ │ │ │ ├── ExcelBase.java
│ │ │ │ ├── ExcelDateUtil.java
│ │ │ │ ├── ExcelExtractorUtil.java
│ │ │ │ ├── ExcelFileUtil.java
│ │ │ │ ├── ExcelPicUtil.java
│ │ │ │ ├── ExcelReader.java
│ │ │ │ ├── ExcelUtil.java
│ │ │ │ ├── ExcelWriter.java
│ │ │ │ ├── RowUtil.java
│ │ │ │ ├── StyleSet.java
│ │ │ │ ├── WorkbookUtil.java
│ │ │ │ ├── cell
│ │ │ │ │ ├── CellEditor.java
│ │ │ │ │ ├── CellHandler.java
│ │ │ │ │ ├── CellLocation.java
│ │ │ │ │ ├── CellSetter.java
│ │ │ │ │ ├── CellUtil.java
│ │ │ │ │ ├── CellValue.java
│ │ │ │ │ ├── FormulaCellValue.java
│ │ │ │ │ ├── NullCell.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── setters
│ │ │ │ │ │ ├── BooleanCellSetter.java
│ │ │ │ │ │ ├── CalendarCellSetter.java
│ │ │ │ │ │ ├── CellSetterFactory.java
│ │ │ │ │ │ ├── CharSequenceCellSetter.java
│ │ │ │ │ │ ├── DateCellSetter.java
│ │ │ │ │ │ ├── EscapeStrCellSetter.java
│ │ │ │ │ │ ├── HyperlinkCellSetter.java
│ │ │ │ │ │ ├── NullCellSetter.java
│ │ │ │ │ │ ├── NumberCellSetter.java
│ │ │ │ │ │ ├── RichTextCellSetter.java
│ │ │ │ │ │ └── TemporalAccessorCellSetter.java
│ │ │ │ │ └── values
│ │ │ │ │ ├── ErrorCellValue.java
│ │ │ │ │ └── NumericCellValue.java
│ │ │ │ ├── editors
│ │ │ │ │ ├── NumericToIntEditor.java
│ │ │ │ │ ├── TrimEditor.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── reader
│ │ │ │ │ ├── AbstractSheetReader.java
│ │ │ │ │ ├── BeanSheetReader.java
│ │ │ │ │ ├── ColumnSheetReader.java
│ │ │ │ │ ├── ListSheetReader.java
│ │ │ │ │ ├── MapSheetReader.java
│ │ │ │ │ ├── SheetReader.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── sax
│ │ │ │ │ ├── AttributeName.java
│ │ │ │ │ ├── CellDataType.java
│ │ │ │ │ ├── ElementName.java
│ │ │ │ │ ├── Excel03SaxReader.java
│ │ │ │ │ ├── Excel07SaxReader.java
│ │ │ │ │ ├── ExcelSaxReader.java
│ │ │ │ │ ├── ExcelSaxUtil.java
│ │ │ │ │ ├── SheetDataSaxHandler.java
│ │ │ │ │ ├── SheetRidReader.java
│ │ │ │ │ ├── handler
│ │ │ │ │ │ ├── AbstractRowHandler.java
│ │ │ │ │ │ ├── BeanRowHandler.java
│ │ │ │ │ │ ├── MapRowHandler.java
│ │ │ │ │ │ ├── RowHandler.java
│ │ │ │ │ │ └── package-info.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── style
│ │ │ │ ├── Align.java
│ │ │ │ ├── StyleUtil.java
│ │ │ │ └── package-info.java
│ │ │ ├── exceptions
│ │ │ │ ├── POIException.java
│ │ │ │ └── package-info.java
│ │ │ ├── ofd
│ │ │ │ ├── OfdWriter.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── word
│ │ │ ├── DocUtil.java
│ │ │ ├── PicType.java
│ │ │ ├── TableUtil.java
│ │ │ ├── Word07Writer.java
│ │ │ ├── WordUtil.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── poi
│ │ │ ├── excel
│ │ │ │ ├── BigExcelWriteTest.java
│ │ │ │ ├── CellEditorTest.java
│ │ │ │ ├── CellUtilTest.java
│ │ │ │ ├── ExcelFileUtilTest.java
│ │ │ │ ├── ExcelReadTest.java
│ │ │ │ ├── ExcelSaxReadTest.java
│ │ │ │ ├── ExcelUtilTest.java
│ │ │ │ ├── ExcelWriteTest.java
│ │ │ │ ├── Issue1729Test.java
│ │ │ │ ├── Issue2221Test.java
│ │ │ │ ├── IssueI53OSTTest.java
│ │ │ │ ├── NumericCellValueTest.java
│ │ │ │ ├── OrderExcel.java
│ │ │ │ ├── TestBean.java
│ │ │ │ └── WorkbookUtilTest.java
│ │ │ ├── ofd
│ │ │ │ └── OfdWriterTest.java
│ │ │ └── word
│ │ │ └── WordWriterTest.java
│ │ └── resources
│ │ ├── 1899bug_demo.xlsx
│ │ ├── UserProjectDO.xlsx
│ │ ├── aaa.xls
│ │ ├── aaa.xlsx
│ │ ├── alias.xlsx
│ │ ├── blankAndDateTest.xlsx
│ │ ├── cell_editor_test.xlsx
│ │ ├── data_for_sax_test.xls
│ │ ├── data_for_sax_test.xlsx
│ │ ├── merge_test.xlsx
│ │ ├── null_cell_test.xlsx
│ │ ├── priceIndex.xls
│ │ └── read_row_npe.xlsx
│ ├── hutool-script
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── script
│ │ │ ├── FullSupportScriptEngine.java
│ │ │ ├── JavaScriptEngine.java
│ │ │ ├── ScriptRuntimeException.java
│ │ │ ├── ScriptUtil.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── script
│ │ │ └── test
│ │ │ ├── NashornDeepTest.java
│ │ │ └── ScriptUtilTest.java
│ │ └── resources
│ │ └── filter1.js
│ ├── hutool-setting
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── setting
│ │ │ ├── AbsSetting.java
│ │ │ ├── GroupedMap.java
│ │ │ ├── GroupedSet.java
│ │ │ ├── Setting.java
│ │ │ ├── SettingLoader.java
│ │ │ ├── SettingRuntimeException.java
│ │ │ ├── SettingUtil.java
│ │ │ ├── dialect
│ │ │ │ ├── Props.java
│ │ │ │ ├── PropsUtil.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── profile
│ │ │ │ ├── GlobalProfile.java
│ │ │ │ ├── Profile.java
│ │ │ │ └── package-info.java
│ │ │ └── yaml
│ │ │ ├── YamlUtil.java
│ │ │ └── package-info.java
│ │ └── test
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── setting
│ │ │ ├── PropsTest.java
│ │ │ ├── PropsUtilTest.java
│ │ │ ├── SettingTest.java
│ │ │ ├── SettingUtilTest.java
│ │ │ └── yaml
│ │ │ └── YamlUtilTest.java
│ │ └── resources
│ │ ├── example
│ │ │ ├── example.set
│ │ │ ├── example.setting
│ │ │ └── group-set-example.set
│ │ ├── test.properties
│ │ ├── test.setting
│ │ ├── test.yaml
│ │ └── to_bean_test.properties
│ ├── hutool-socket
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── socket
│ │ │ ├── SocketConfig.java
│ │ │ ├── SocketRuntimeException.java
│ │ │ ├── SocketUtil.java
│ │ │ ├── aio
│ │ │ │ ├── AcceptHandler.java
│ │ │ │ ├── AioClient.java
│ │ │ │ ├── AioServer.java
│ │ │ │ ├── AioSession.java
│ │ │ │ ├── IoAction.java
│ │ │ │ ├── ReadHandler.java
│ │ │ │ ├── SimpleIoAction.java
│ │ │ │ └── package-info.java
│ │ │ ├── nio
│ │ │ │ ├── AcceptHandler.java
│ │ │ │ ├── ChannelHandler.java
│ │ │ │ ├── NioClient.java
│ │ │ │ ├── NioServer.java
│ │ │ │ ├── NioUtil.java
│ │ │ │ ├── Operation.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── protocol
│ │ │ ├── MsgDecoder.java
│ │ │ ├── MsgEncoder.java
│ │ │ ├── Protocol.java
│ │ │ └── package-info.java
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── socket
│ │ ├── aio
│ │ │ ├── AioClientTest.java
│ │ │ └── AioServerTest.java
│ │ └── nio
│ │ ├── NioClientTest.java
│ │ └── NioServerTest.java
│ ├── hutool-system
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── cn
│ │ │ └── hutool
│ │ │ └── system
│ │ │ ├── HostInfo.java
│ │ │ ├── JavaInfo.java
│ │ │ ├── JavaRuntimeInfo.java
│ │ │ ├── JavaSpecInfo.java
│ │ │ ├── JvmInfo.java
│ │ │ ├── JvmSpecInfo.java
│ │ │ ├── OsInfo.java
│ │ │ ├── RuntimeInfo.java
│ │ │ ├── SystemPropsKeys.java
│ │ │ ├── SystemUtil.java
│ │ │ ├── UserInfo.java
│ │ │ ├── oshi
│ │ │ │ ├── CpuInfo.java
│ │ │ │ ├── CpuTicks.java
│ │ │ │ ├── OshiUtil.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ └── test
│ │ └── java
│ │ └── cn
│ │ └── hutool
│ │ └── system
│ │ ├── OshiPrintTest.java
│ │ ├── OshiTest.java
│ │ └── SystemUtilTest.java
│ ├── hutool.sh
│ └── pom.xml
└── 5t6t网_hutool-5-master.zip
554 directories, 1957 files
评论