[cleanup] erefactor/EclipseJdt - Remove trailing whitespace - All lines

EclipseJdt cleanup 'RemoveAllTrailingWhitespace' applied by erefactor.

For EclipseJdt see https://www.eclipse.org/eclipse/news/4.18/jdt.php
For erefactor see https://github.com/cal101/erefactor
This commit is contained in:
cal101 2021-02-27 09:54:17 +00:00
parent b285db71cd
commit 83c30bcfb7
20 changed files with 94 additions and 94 deletions

View File

@ -1,6 +1,6 @@
/** /**
* 布隆过滤提供一些Hash算法的布隆过滤 * 布隆过滤提供一些Hash算法的布隆过滤
* *
* @author looly * @author looly
* *
*/ */

View File

@ -8,14 +8,14 @@ import cn.hutool.bloomfilter.bitMap.IntMap;
import cn.hutool.bloomfilter.bitMap.LongMap; import cn.hutool.bloomfilter.bitMap.LongMap;
public class BitMapBloomFilterTest { public class BitMapBloomFilterTest {
@Test @Test
public void filterTest() { public void filterTest() {
BitMapBloomFilter filter = new BitMapBloomFilter(10); BitMapBloomFilter filter = new BitMapBloomFilter(10);
filter.add("123"); filter.add("123");
filter.add("abc"); filter.add("abc");
filter.add("ddd"); filter.add("ddd");
Assert.assertTrue(filter.contains("abc")); Assert.assertTrue(filter.contains("abc"));
Assert.assertTrue(filter.contains("ddd")); Assert.assertTrue(filter.contains("ddd"));
Assert.assertTrue(filter.contains("123")); Assert.assertTrue(filter.contains("123"));

View File

@ -13,10 +13,10 @@ import cn.hutool.cache.impl.WeakCache;
*@since 3.0.1 *@since 3.0.1
*/ */
public class CacheUtil { public class CacheUtil {
/** /**
* 创建FIFO(first in first out) 先进先出缓存. * 创建FIFO(first in first out) 先进先出缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param capacity 容量 * @param capacity 容量
@ -26,10 +26,10 @@ public class CacheUtil {
public static <K, V> FIFOCache<K, V> newFIFOCache(int capacity, long timeout){ public static <K, V> FIFOCache<K, V> newFIFOCache(int capacity, long timeout){
return new FIFOCache<>(capacity, timeout); return new FIFOCache<>(capacity, timeout);
} }
/** /**
* 创建FIFO(first in first out) 先进先出缓存. * 创建FIFO(first in first out) 先进先出缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param capacity 容量 * @param capacity 容量
@ -38,10 +38,10 @@ public class CacheUtil {
public static <K, V> FIFOCache<K, V> newFIFOCache(int capacity){ public static <K, V> FIFOCache<K, V> newFIFOCache(int capacity){
return new FIFOCache<>(capacity); return new FIFOCache<>(capacity);
} }
/** /**
* 创建LFU(least frequently used) 最少使用率缓存. * 创建LFU(least frequently used) 最少使用率缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param capacity 容量 * @param capacity 容量
@ -51,10 +51,10 @@ public class CacheUtil {
public static <K, V> LFUCache<K, V> newLFUCache(int capacity, long timeout){ public static <K, V> LFUCache<K, V> newLFUCache(int capacity, long timeout){
return new LFUCache<>(capacity, timeout); return new LFUCache<>(capacity, timeout);
} }
/** /**
* 创建LFU(least frequently used) 最少使用率缓存. * 创建LFU(least frequently used) 最少使用率缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param capacity 容量 * @param capacity 容量
@ -63,11 +63,11 @@ public class CacheUtil {
public static <K, V> LFUCache<K, V> newLFUCache(int capacity){ public static <K, V> LFUCache<K, V> newLFUCache(int capacity){
return new LFUCache<>(capacity); return new LFUCache<>(capacity);
} }
/** /**
* 创建LRU (least recently used)最近最久未使用缓存. * 创建LRU (least recently used)最近最久未使用缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param capacity 容量 * @param capacity 容量
@ -77,10 +77,10 @@ public class CacheUtil {
public static <K, V> LRUCache<K, V> newLRUCache(int capacity, long timeout){ public static <K, V> LRUCache<K, V> newLRUCache(int capacity, long timeout){
return new LRUCache<>(capacity, timeout); return new LRUCache<>(capacity, timeout);
} }
/** /**
* 创建LRU (least recently used)最近最久未使用缓存. * 创建LRU (least recently used)最近最久未使用缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param capacity 容量 * @param capacity 容量
@ -89,10 +89,10 @@ public class CacheUtil {
public static <K, V> LRUCache<K, V> newLRUCache(int capacity){ public static <K, V> LRUCache<K, V> newLRUCache(int capacity){
return new LRUCache<>(capacity); return new LRUCache<>(capacity);
} }
/** /**
* 创建定时缓存. * 创建定时缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param timeout 过期时长单位毫秒 * @param timeout 过期时长单位毫秒
@ -101,10 +101,10 @@ public class CacheUtil {
public static <K, V> TimedCache<K, V> newTimedCache(long timeout){ public static <K, V> TimedCache<K, V> newTimedCache(long timeout){
return new TimedCache<>(timeout); return new TimedCache<>(timeout);
} }
/** /**
* 创建弱引用缓存. * 创建弱引用缓存.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @param timeout 过期时长单位毫秒 * @param timeout 过期时长单位毫秒
@ -114,10 +114,10 @@ public class CacheUtil {
public static <K, V> WeakCache<K, V> newWeakCache(long timeout){ public static <K, V> WeakCache<K, V> newWeakCache(long timeout){
return new WeakCache<>(timeout); return new WeakCache<>(timeout);
} }
/** /**
* 创建无缓存实现. * 创建无缓存实现.
* *
* @param <K> Key类型 * @param <K> Key类型
* @param <V> Value类型 * @param <V> Value类型
* @return {@link NoCache} * @return {@link NoCache}

View File

@ -23,7 +23,7 @@ public abstract class AbstractFileCache implements Serializable{
protected final long timeout; protected final long timeout;
/** 缓存实现 */ /** 缓存实现 */
protected final Cache<File, byte[]> cache; protected final Cache<File, byte[]> cache;
/** 已使用缓存空间 */ /** 已使用缓存空间 */
protected int usedSize; protected int usedSize;
@ -122,7 +122,7 @@ public abstract class AbstractFileCache implements Serializable{
return bytes; return bytes;
} }
// ---------------------------------------------------------------- protected method start // ---------------------------------------------------------------- protected method start
/** /**
* 初始化实现文件缓存的缓存对象 * 初始化实现文件缓存的缓存对象

View File

@ -12,7 +12,7 @@ import cn.hutool.cache.impl.LFUCache;
*/ */
public class LFUFileCache extends AbstractFileCache{ public class LFUFileCache extends AbstractFileCache{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 构造<br> * 构造<br>
* 最大文件大小为缓存容量的一半<br> * 最大文件大小为缓存容量的一半<br>

View File

@ -12,7 +12,7 @@ import cn.hutool.cache.impl.LRUCache;
*/ */
public class LRUFileCache extends AbstractFileCache{ public class LRUFileCache extends AbstractFileCache{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 构造<br> * 构造<br>
* 最大文件大小为缓存容量的一半<br> * 最大文件大小为缓存容量的一半<br>

View File

@ -1,6 +1,6 @@
/** /**
* 提供针对文件的缓存实现 * 提供针对文件的缓存实现
* *
* @author looly * @author looly
* *
*/ */

View File

@ -12,20 +12,20 @@ import java.util.concurrent.atomic.AtomicLong;
*/ */
public class CacheObj<K, V> implements Serializable{ public class CacheObj<K, V> implements Serializable{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
protected final K key; protected final K key;
protected final V obj; protected final V obj;
/** 上次访问时间 */ /** 上次访问时间 */
private volatile long lastAccess; private volatile long lastAccess;
/** 访问次数 */ /** 访问次数 */
protected AtomicLong accessCount = new AtomicLong(); protected AtomicLong accessCount = new AtomicLong();
/** 对象存活时长0表示永久存活*/ /** 对象存活时长0表示永久存活*/
private final long ttl; private final long ttl;
/** /**
* 构造 * 构造
* *
* @param key * @param key
* @param obj * @param obj
* @param ttl 超时时长 * @param ttl 超时时长
@ -36,10 +36,10 @@ public class CacheObj<K, V> implements Serializable{
this.ttl = ttl; this.ttl = ttl;
this.lastAccess = System.currentTimeMillis(); this.lastAccess = System.currentTimeMillis();
} }
/** /**
* 判断是否过期 * 判断是否过期
* *
* @return 是否过期 * @return 是否过期
*/ */
boolean isExpired() { boolean isExpired() {
@ -49,10 +49,10 @@ public class CacheObj<K, V> implements Serializable{
} }
return false; return false;
} }
/** /**
* 获取值 * 获取值
* *
* @param isUpdateLastAccess 是否更新最后访问时间 * @param isUpdateLastAccess 是否更新最后访问时间
* @return 获得对象 * @return 获得对象
* @since 4.0.10 * @since 4.0.10
@ -64,7 +64,7 @@ public class CacheObj<K, V> implements Serializable{
accessCount.getAndIncrement(); accessCount.getAndIncrement();
return this.obj; return this.obj;
} }
/** /**
* 获取键 * 获取键
* @return * @return
@ -73,7 +73,7 @@ public class CacheObj<K, V> implements Serializable{
public K getKey() { public K getKey() {
return this.key; return this.key;
} }
/** /**
* 获取值 * 获取值
* @return * @return
@ -82,7 +82,7 @@ public class CacheObj<K, V> implements Serializable{
public V getValue() { public V getValue() {
return this.obj; return this.obj;
} }
@Override @Override
public String toString() { public String toString() {
return "CacheObj [key=" + key + ", obj=" + obj + ", lastAccess=" + lastAccess + ", accessCount=" + accessCount + ", ttl=" + ttl + "]"; return "CacheObj [key=" + key + ", obj=" + obj + ", lastAccess=" + lastAccess + ", accessCount=" + accessCount + ", ttl=" + ttl + "]";

View File

@ -6,7 +6,7 @@ import java.util.NoSuchElementException;
/** /**
* {@link cn.hutool.cache.impl.AbstractCache} 的CacheObj迭代器. * {@link cn.hutool.cache.impl.AbstractCache} 的CacheObj迭代器.
* *
* @author looly * @author looly
* *
* @param <K> 键类型 * @param <K> 键类型
@ -21,7 +21,7 @@ public class CacheObjIterator<K, V> implements Iterator<CacheObj<K, V>>, Seriali
/** /**
* 构造 * 构造
* *
* @param iterator {@link Iterator} * @param iterator {@link Iterator}
*/ */
CacheObjIterator(Iterator<CacheObj<K, V>> iterator) { CacheObjIterator(Iterator<CacheObj<K, V>> iterator) {

View File

@ -7,7 +7,7 @@ import java.util.Iterator;
/** /**
* 无缓存实现用于快速关闭缓存 * 无缓存实现用于快速关闭缓存
* *
* @param <K> 键类型 * @param <K> 键类型
* @param <V> 值类型 * @param <V> 值类型
* @author Looly,jodd * @author Looly,jodd
@ -49,7 +49,7 @@ public class NoCache<K, V> implements Cache<K, V> {
public V get(K key, boolean isUpdateLastAccess) { public V get(K key, boolean isUpdateLastAccess) {
return null; return null;
} }
@Override @Override
public V get(K key, Func0<V> supplier) { public V get(K key, Func0<V> supplier) {
return get(key, true, supplier); return get(key, true, supplier);
@ -78,7 +78,7 @@ public class NoCache<K, V> implements Cache<K, V> {
} }
}; };
} }
@Override @Override
public Iterator<CacheObj<K, V>> cacheObjIterator() { public Iterator<CacheObj<K, V>> cacheObjIterator() {
return null; return null;

View File

@ -1,6 +1,6 @@
/** /**
* 提供各种缓存实现 * 提供各种缓存实现
* *
* @author looly * @author looly
* *
*/ */

View File

@ -1,6 +1,6 @@
/** /**
* 提供简易的缓存实现此模块参考了jodd工具中的Cache模块 * 提供简易的缓存实现此模块参考了jodd工具中的Cache模块
* *
* @author looly * @author looly
* *
*/ */

View File

@ -14,7 +14,7 @@ import org.junit.Test;
* *
*/ */
public class CacheTest { public class CacheTest {
@Test @Test
public void fifoCacheTest(){ public void fifoCacheTest(){
Cache<String,String> fifoCache = CacheUtil.newFIFOCache(3); Cache<String,String> fifoCache = CacheUtil.newFIFOCache(3);
@ -28,22 +28,22 @@ public class CacheTest {
fifoCache.put("key2", "value2", DateUnit.SECOND.getMillis() * 3); fifoCache.put("key2", "value2", DateUnit.SECOND.getMillis() * 3);
fifoCache.put("key3", "value3", DateUnit.SECOND.getMillis() * 3); fifoCache.put("key3", "value3", DateUnit.SECOND.getMillis() * 3);
fifoCache.put("key4", "value4", DateUnit.SECOND.getMillis() * 3); fifoCache.put("key4", "value4", DateUnit.SECOND.getMillis() * 3);
//由于缓存容量只有3当加入第四个元素的时候根据FIFO规则最先放入的对象将被移除 //由于缓存容量只有3当加入第四个元素的时候根据FIFO规则最先放入的对象将被移除
String value1 = fifoCache.get("key1"); String value1 = fifoCache.get("key1");
Assert.assertNull(value1); Assert.assertNull(value1);
} }
@Test @Test
public void lfuCacheTest(){ public void lfuCacheTest(){
Cache<String, String> lfuCache = CacheUtil.newLFUCache(3); Cache<String, String> lfuCache = CacheUtil.newLFUCache(3);
lfuCache.put("key1", "value1", DateUnit.SECOND.getMillis() * 3); lfuCache.put("key1", "value1", DateUnit.SECOND.getMillis() * 3);
//使用次数+1 //使用次数+1
lfuCache.get("key1"); lfuCache.get("key1");
lfuCache.put("key2", "value2", DateUnit.SECOND.getMillis() * 3); lfuCache.put("key2", "value2", DateUnit.SECOND.getMillis() * 3);
lfuCache.put("key3", "value3", DateUnit.SECOND.getMillis() * 3); lfuCache.put("key3", "value3", DateUnit.SECOND.getMillis() * 3);
lfuCache.put("key4", "value4", DateUnit.SECOND.getMillis() * 3); lfuCache.put("key4", "value4", DateUnit.SECOND.getMillis() * 3);
//由于缓存容量只有3当加入第四个元素的时候根据LFU规则最少使用的将被移除2,3被移除 //由于缓存容量只有3当加入第四个元素的时候根据LFU规则最少使用的将被移除2,3被移除
String value1 = lfuCache.get("key1"); String value1 = lfuCache.get("key1");
String value2 = lfuCache.get("key2"); String value2 = lfuCache.get("key2");
@ -52,7 +52,7 @@ public class CacheTest {
Assert.assertNull(value2); Assert.assertNull(value2);
Assert.assertNull(value3); Assert.assertNull(value3);
} }
@Test @Test
public void lruCacheTest(){ public void lruCacheTest(){
Cache<String, String> lruCache = CacheUtil.newLRUCache(3); Cache<String, String> lruCache = CacheUtil.newLRUCache(3);
@ -71,7 +71,7 @@ public class CacheTest {
String value2 = lruCache.get("key2"); String value2 = lruCache.get("key2");
Assert.assertNull(value2); Assert.assertNull(value2);
} }
@Test @Test
public void timedCacheTest(){ public void timedCacheTest(){
TimedCache<String, String> timedCache = CacheUtil.newTimedCache(4); TimedCache<String, String> timedCache = CacheUtil.newTimedCache(4);
@ -80,29 +80,29 @@ public class CacheTest {
timedCache.put("key2", "value2", DateUnit.SECOND.getMillis() * 5);//5秒过期 timedCache.put("key2", "value2", DateUnit.SECOND.getMillis() * 5);//5秒过期
timedCache.put("key3", "value3");//默认过期(4毫秒) timedCache.put("key3", "value3");//默认过期(4毫秒)
timedCache.put("key4", "value4", Long.MAX_VALUE);//永不过期 timedCache.put("key4", "value4", Long.MAX_VALUE);//永不过期
//启动定时任务每5毫秒秒检查一次过期 //启动定时任务每5毫秒秒检查一次过期
timedCache.schedulePrune(5); timedCache.schedulePrune(5);
//等待5毫秒 //等待5毫秒
ThreadUtil.sleep(5); ThreadUtil.sleep(5);
//5毫秒后由于value2设置了5毫秒过期因此只有value2被保留下来 //5毫秒后由于value2设置了5毫秒过期因此只有value2被保留下来
String value1 = timedCache.get("key1"); String value1 = timedCache.get("key1");
Assert.assertNull(value1); Assert.assertNull(value1);
String value2 = timedCache.get("key2"); String value2 = timedCache.get("key2");
Assert.assertEquals("value2", value2); Assert.assertEquals("value2", value2);
//5毫秒后由于设置了默认过期key3只被保留4毫秒因此为null //5毫秒后由于设置了默认过期key3只被保留4毫秒因此为null
String value3 = timedCache.get("key3"); String value3 = timedCache.get("key3");
Assert.assertNull(value3); Assert.assertNull(value3);
String value3Supplier = timedCache.get("key3", () -> "Default supplier"); String value3Supplier = timedCache.get("key3", () -> "Default supplier");
Assert.assertEquals("Default supplier", value3Supplier); Assert.assertEquals("Default supplier", value3Supplier);
// 永不过期 // 永不过期
String value4 = timedCache.get("key4"); String value4 = timedCache.get("key4");
Assert.assertEquals("value4", value4); Assert.assertEquals("value4", value4);
//取消定时清理 //取消定时清理
timedCache.cancelPruneSchedule(); timedCache.cancelPruneSchedule();
} }

View File

@ -13,7 +13,7 @@ import java.util.concurrent.ThreadLocalRandom;
/** /**
* 圆圈干扰验证码 * 圆圈干扰验证码
* *
* @author looly * @author looly
* @since 3.2.3 * @since 3.2.3
* *
@ -23,7 +23,7 @@ public class CircleCaptcha extends AbstractCaptcha {
/** /**
* 构造 * 构造
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
*/ */
@ -33,7 +33,7 @@ public class CircleCaptcha extends AbstractCaptcha {
/** /**
* 构造 * 构造
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
* @param codeCount 字符个数 * @param codeCount 字符个数
@ -44,7 +44,7 @@ public class CircleCaptcha extends AbstractCaptcha {
/** /**
* 构造 * 构造
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
* @param codeCount 字符个数 * @param codeCount 字符个数
@ -71,7 +71,7 @@ public class CircleCaptcha extends AbstractCaptcha {
// ----------------------------------------------------------------------------------------------------- Private method start // ----------------------------------------------------------------------------------------------------- Private method start
/** /**
* 绘制字符串 * 绘制字符串
* *
* @param g {@link Graphics2D}画笔 * @param g {@link Graphics2D}画笔
* @param code 验证码 * @param code 验证码
*/ */
@ -85,7 +85,7 @@ public class CircleCaptcha extends AbstractCaptcha {
/** /**
* 画随机干扰 * 画随机干扰
* *
* @param g {@link Graphics2D} * @param g {@link Graphics2D}
*/ */
private void drawInterfere(Graphics2D g) { private void drawInterfere(Graphics2D g) {

View File

@ -5,7 +5,7 @@ import java.io.Serializable;
/** /**
* 验证码接口提供验证码对象接口定义 * 验证码接口提供验证码对象接口定义
* *
* @author looly * @author looly
* *
*/ */
@ -18,14 +18,14 @@ public interface ICaptcha extends Serializable{
/** /**
* 获取验证码的文字内容 * 获取验证码的文字内容
* *
* @return 验证码文字内容 * @return 验证码文字内容
*/ */
String getCode(); String getCode();
/** /**
* 验证验证码是否正确建议忽略大小写 * 验证验证码是否正确建议忽略大小写
* *
* @param userInputCode 用户输入的验证码 * @param userInputCode 用户输入的验证码
* @return 是否与生成的一直 * @return 是否与生成的一直
*/ */
@ -33,7 +33,7 @@ public interface ICaptcha extends Serializable{
/** /**
* 将验证码写出到目标流中 * 将验证码写出到目标流中
* *
* @param out 目标流 * @param out 目标流
*/ */
void write(OutputStream out); void write(OutputStream out);

View File

@ -14,7 +14,7 @@ import cn.hutool.core.util.RandomUtil;
/** /**
* 使用干扰线方式生成的图形验证码 * 使用干扰线方式生成的图形验证码
* *
* @author looly * @author looly
* @since 3.1.2 * @since 3.1.2
*/ */
@ -24,7 +24,7 @@ public class LineCaptcha extends AbstractCaptcha {
// -------------------------------------------------------------------- Constructor start // -------------------------------------------------------------------- Constructor start
/** /**
* 构造默认5位验证码150条干扰线 * 构造默认5位验证码150条干扰线
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
*/ */
@ -34,7 +34,7 @@ public class LineCaptcha extends AbstractCaptcha {
/** /**
* 构造 * 构造
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
* @param codeCount 字符个数 * @param codeCount 字符个数
@ -63,7 +63,7 @@ public class LineCaptcha extends AbstractCaptcha {
// ----------------------------------------------------------------------------------------------------- Private method start // ----------------------------------------------------------------------------------------------------- Private method start
/** /**
* 绘制字符串 * 绘制字符串
* *
* @param g {@link Graphics}画笔 * @param g {@link Graphics}画笔
* @param code 验证码 * @param code 验证码
*/ */
@ -77,7 +77,7 @@ public class LineCaptcha extends AbstractCaptcha {
/** /**
* 绘制干扰线 * 绘制干扰线
* *
* @param g {@link Graphics2D}画笔 * @param g {@link Graphics2D}画笔
*/ */
private void drawInterfere(Graphics2D g) { private void drawInterfere(Graphics2D g) {

View File

@ -13,7 +13,7 @@ import java.awt.image.BufferedImage;
/** /**
* 扭曲干扰验证码 * 扭曲干扰验证码
* *
* @author looly * @author looly
* @since 3.2.3 * @since 3.2.3
* *
@ -23,7 +23,7 @@ public class ShearCaptcha extends AbstractCaptcha {
/** /**
* 构造 * 构造
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
*/ */
@ -33,7 +33,7 @@ public class ShearCaptcha extends AbstractCaptcha {
/** /**
* 构造 * 构造
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
* @param codeCount 字符个数 * @param codeCount 字符个数
@ -44,7 +44,7 @@ public class ShearCaptcha extends AbstractCaptcha {
/** /**
* 构造 * 构造
* *
* @param width 图片宽 * @param width 图片宽
* @param height 图片高 * @param height 图片高
* @param codeCount 字符个数 * @param codeCount 字符个数
@ -73,7 +73,7 @@ public class ShearCaptcha extends AbstractCaptcha {
// ----------------------------------------------------------------------------------------------------- Private method start // ----------------------------------------------------------------------------------------------------- Private method start
/** /**
* 绘制字符串 * 绘制字符串
* *
* @param g {@link Graphics}画笔 * @param g {@link Graphics}画笔
* @param code 验证码 * @param code 验证码
*/ */
@ -87,7 +87,7 @@ public class ShearCaptcha extends AbstractCaptcha {
/** /**
* 扭曲 * 扭曲
* *
* @param g {@link Graphics} * @param g {@link Graphics}
* @param w1 w1 * @param w1 w1
* @param h1 h1 * @param h1 h1
@ -100,7 +100,7 @@ public class ShearCaptcha extends AbstractCaptcha {
/** /**
* X坐标扭曲 * X坐标扭曲
* *
* @param g {@link Graphics} * @param g {@link Graphics}
* @param w1 * @param w1
* @param h1 * @param h1
@ -125,7 +125,7 @@ public class ShearCaptcha extends AbstractCaptcha {
/** /**
* Y坐标扭曲 * Y坐标扭曲
* *
* @param g {@link Graphics} * @param g {@link Graphics}
* @param w1 * @param w1
* @param h1 * @param h1
@ -150,7 +150,7 @@ public class ShearCaptcha extends AbstractCaptcha {
/** /**
* 干扰线 * 干扰线
* *
* @param g {@link Graphics} * @param g {@link Graphics}
* @param x1 x1 * @param x1 x1
* @param y1 y1 * @param y1 y1

View File

@ -5,21 +5,21 @@ import cn.hutool.core.util.RandomUtil;
/** /**
* 随机字符验证码生成器<br> * 随机字符验证码生成器<br>
* 可以通过传入的基础集合和长度随机生成验证码字符 * 可以通过传入的基础集合和长度随机生成验证码字符
* *
* @author looly * @author looly
* @since 4.1.2 * @since 4.1.2
*/ */
public abstract class AbstractGenerator implements CodeGenerator { public abstract class AbstractGenerator implements CodeGenerator {
private static final long serialVersionUID = 8685744597154953479L; private static final long serialVersionUID = 8685744597154953479L;
/** 基础字符集合,用于随机获取字符串的字符集合 */ /** 基础字符集合,用于随机获取字符串的字符集合 */
protected final String baseStr; protected final String baseStr;
/** 验证码长度 */ /** 验证码长度 */
protected final int length; protected final int length;
/** /**
* 构造使用字母+数字做为基础 * 构造使用字母+数字做为基础
* *
* @param count 生成验证码长度 * @param count 生成验证码长度
*/ */
public AbstractGenerator(int count) { public AbstractGenerator(int count) {
@ -28,7 +28,7 @@ public abstract class AbstractGenerator implements CodeGenerator {
/** /**
* 构造 * 构造
* *
* @param baseStr 基础字符集合用于随机获取字符串的字符集合 * @param baseStr 基础字符集合用于随机获取字符串的字符集合
* @param length 生成验证码长度 * @param length 生成验证码长度
*/ */
@ -39,7 +39,7 @@ public abstract class AbstractGenerator implements CodeGenerator {
/** /**
* 获取长度验证码 * 获取长度验证码
* *
* @return 验证码长度 * @return 验证码长度
*/ */
public int getLength() { public int getLength() {

View File

@ -4,7 +4,7 @@ import java.io.Serializable;
/** /**
* 验证码文字生成器 * 验证码文字生成器
* *
* @author looly * @author looly
* @since 4.1.2 * @since 4.1.2
*/ */
@ -12,7 +12,7 @@ public interface CodeGenerator extends Serializable{
/** /**
* 生成验证码 * 生成验证码
* *
* @return 验证码 * @return 验证码
*/ */
String generate(); String generate();
@ -20,7 +20,7 @@ public interface CodeGenerator extends Serializable{
/** /**
* 验证用户输入的字符串是否与生成的验证码匹配<br> * 验证用户输入的字符串是否与生成的验证码匹配<br>
* 用户通过实现此方法定义验证码匹配方式 * 用户通过实现此方法定义验证码匹配方式
* *
* @param code 生成的随机验证码 * @param code 生成的随机验证码
* @param userInputCode 用户输入的验证码 * @param userInputCode 用户输入的验证码
* @return 是否验证通过 * @return 是否验证通过

View File

@ -7,7 +7,7 @@ import cn.hutool.core.util.StrUtil;
/** /**
* 数字计算验证码生成器 * 数字计算验证码生成器
* *
* @author looly * @author looly
* @since 4.1.2 * @since 4.1.2
*/ */
@ -28,7 +28,7 @@ public class MathGenerator implements CodeGenerator {
/** /**
* 构造 * 构造
* *
* @param numberLength 参与计算最大数字位数 * @param numberLength 参与计算最大数字位数
*/ */
public MathGenerator(int numberLength) { public MathGenerator(int numberLength) {
@ -75,7 +75,7 @@ public class MathGenerator implements CodeGenerator {
/** /**
* 根据长度获取参与计算数字最大值 * 根据长度获取参与计算数字最大值
* *
* @return 最大值 * @return 最大值
*/ */
private int getLimit() { private int getLimit() {