mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
Merge pull request #1624 from cal101/erefactor/v5-dev-project/1/jdt/jdt-RemoveAllTrailingWhitespaceCleanUp-2
[cleanup] erefactor/EclipseJdt - Remove trailing whitespace - All lines
This commit is contained in:
commit
53b523be6c
@ -4,13 +4,13 @@ import cn.hutool.core.util.NumberUtil;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 可变 <code>int</code> 类型
|
* 可变 <code>int</code> 类型
|
||||||
*
|
*
|
||||||
* @see Integer
|
* @see Integer
|
||||||
* @since 3.0.1
|
* @since 3.0.1
|
||||||
*/
|
*/
|
||||||
public class MutableInt extends Number implements Comparable<MutableInt>, Mutable<Number> {
|
public class MutableInt extends Number implements Comparable<MutableInt>, Mutable<Number> {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private int value;
|
private int value;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -105,7 +105,7 @@ public class MutableInt extends Number implements Comparable<MutableInt>, Mutabl
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 减去值
|
* 减去值
|
||||||
*
|
*
|
||||||
* @param operand 被减的值
|
* @param operand 被减的值
|
||||||
* @return this
|
* @return this
|
||||||
*/
|
*/
|
||||||
@ -116,7 +116,7 @@ public class MutableInt extends Number implements Comparable<MutableInt>, Mutabl
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 减去值
|
* 减去值
|
||||||
*
|
*
|
||||||
* @param operand 被减的值,非空
|
* @param operand 被减的值,非空
|
||||||
* @return this
|
* @return this
|
||||||
* @throws NullPointerException if the object is null
|
* @throws NullPointerException if the object is null
|
||||||
@ -155,7 +155,7 @@ public class MutableInt extends Number implements Comparable<MutableInt>, Mutabl
|
|||||||
* <li>类型为 {@link MutableInt}</li>
|
* <li>类型为 {@link MutableInt}</li>
|
||||||
* <li>值相等</li>
|
* <li>值相等</li>
|
||||||
* </ol>
|
* </ol>
|
||||||
*
|
*
|
||||||
* @param obj 比对的对象
|
* @param obj 比对的对象
|
||||||
* @return 相同返回<code>true</code>,否则 <code>false</code>
|
* @return 相同返回<code>true</code>,否则 <code>false</code>
|
||||||
*/
|
*/
|
||||||
@ -175,7 +175,7 @@ public class MutableInt extends Number implements Comparable<MutableInt>, Mutabl
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* 比较
|
* 比较
|
||||||
*
|
*
|
||||||
* @param other 其它 {@link MutableInt} 对象
|
* @param other 其它 {@link MutableInt} 对象
|
||||||
* @return x==y返回0,x<y返回-1,x>y返回1
|
* @return x==y返回0,x<y返回-1,x>y返回1
|
||||||
*/
|
*/
|
||||||
|
@ -4,13 +4,13 @@ import cn.hutool.core.util.NumberUtil;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 可变 <code>long</code> 类型
|
* 可变 <code>long</code> 类型
|
||||||
*
|
*
|
||||||
* @see Long
|
* @see Long
|
||||||
* @since 3.0.1
|
* @since 3.0.1
|
||||||
*/
|
*/
|
||||||
public class MutableLong extends Number implements Comparable<MutableLong>, Mutable<Number> {
|
public class MutableLong extends Number implements Comparable<MutableLong>, Mutable<Number> {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private long value;
|
private long value;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -105,7 +105,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 减去值
|
* 减去值
|
||||||
*
|
*
|
||||||
* @param operand 被减的值
|
* @param operand 被减的值
|
||||||
* @return this
|
* @return this
|
||||||
*/
|
*/
|
||||||
@ -116,7 +116,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 减去值
|
* 减去值
|
||||||
*
|
*
|
||||||
* @param operand 被减的值,非空
|
* @param operand 被减的值,非空
|
||||||
* @return this
|
* @return this
|
||||||
* @throws NullPointerException if the object is null
|
* @throws NullPointerException if the object is null
|
||||||
@ -155,7 +155,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
|||||||
* <li>类型为 {@link MutableLong}</li>
|
* <li>类型为 {@link MutableLong}</li>
|
||||||
* <li>值相等</li>
|
* <li>值相等</li>
|
||||||
* </ol>
|
* </ol>
|
||||||
*
|
*
|
||||||
* @param obj 比对的对象
|
* @param obj 比对的对象
|
||||||
* @return 相同返回<code>true</code>,否则 <code>false</code>
|
* @return 相同返回<code>true</code>,否则 <code>false</code>
|
||||||
*/
|
*/
|
||||||
@ -175,7 +175,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* 比较
|
* 比较
|
||||||
*
|
*
|
||||||
* @param other 其它 {@link MutableLong} 对象
|
* @param other 其它 {@link MutableLong} 对象
|
||||||
* @return x==y返回0,x<y返回-1,x>y返回1
|
* @return x==y返回0,x<y返回-1,x>y返回1
|
||||||
*/
|
*/
|
||||||
|
@ -4,7 +4,7 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 可变<code>Object</code>
|
* 可变<code>Object</code>
|
||||||
*
|
*
|
||||||
* @param <T> 可变的类型
|
* @param <T> 可变的类型
|
||||||
* @since 3.0.1
|
* @since 3.0.1
|
||||||
*/
|
*/
|
||||||
@ -21,7 +21,7 @@ public class MutableObj<T> implements Mutable<T>, Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param value 值
|
* @param value 值
|
||||||
*/
|
*/
|
||||||
public MutableObj(final T value) {
|
public MutableObj(final T value) {
|
||||||
|
@ -4,13 +4,13 @@ import cn.hutool.core.util.NumberUtil;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 可变 <code>short</code> 类型
|
* 可变 <code>short</code> 类型
|
||||||
*
|
*
|
||||||
* @see Short
|
* @see Short
|
||||||
* @since 3.0.1
|
* @since 3.0.1
|
||||||
*/
|
*/
|
||||||
public class MutableShort extends Number implements Comparable<MutableShort>, Mutable<Number> {
|
public class MutableShort extends Number implements Comparable<MutableShort>, Mutable<Number> {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private short value;
|
private short value;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -105,7 +105,7 @@ public class MutableShort extends Number implements Comparable<MutableShort>, Mu
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 减去值
|
* 减去值
|
||||||
*
|
*
|
||||||
* @param operand 被减的值
|
* @param operand 被减的值
|
||||||
* @return this
|
* @return this
|
||||||
*/
|
*/
|
||||||
@ -116,7 +116,7 @@ public class MutableShort extends Number implements Comparable<MutableShort>, Mu
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 减去值
|
* 减去值
|
||||||
*
|
*
|
||||||
* @param operand 被减的值,非空
|
* @param operand 被减的值,非空
|
||||||
* @return this
|
* @return this
|
||||||
* @throws NullPointerException if the object is null
|
* @throws NullPointerException if the object is null
|
||||||
@ -160,7 +160,7 @@ public class MutableShort extends Number implements Comparable<MutableShort>, Mu
|
|||||||
* <li>类型为 {@link MutableShort}</li>
|
* <li>类型为 {@link MutableShort}</li>
|
||||||
* <li>值相等</li>
|
* <li>值相等</li>
|
||||||
* </ol>
|
* </ol>
|
||||||
*
|
*
|
||||||
* @param obj 比对的对象
|
* @param obj 比对的对象
|
||||||
* @return 相同返回<code>true</code>,否则 <code>false</code>
|
* @return 相同返回<code>true</code>,否则 <code>false</code>
|
||||||
*/
|
*/
|
||||||
@ -180,7 +180,7 @@ public class MutableShort extends Number implements Comparable<MutableShort>, Mu
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* 比较
|
* 比较
|
||||||
*
|
*
|
||||||
* @param other 其它 {@link MutableShort} 对象
|
* @param other 其它 {@link MutableShort} 对象
|
||||||
* @return x==y返回0,x<y返回-1,x>y返回1
|
* @return x==y返回0,x<y返回-1,x>y返回1
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* 提供可变值对象的封装,用于封装int、long等不可变值,使其可变
|
* 提供可变值对象的封装,用于封装int、long等不可变值,使其可变
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* 语言特性包,包括大量便捷的数据结构,例如验证器Validator,分布式ID生成器Snowflake等
|
* 语言特性包,包括大量便捷的数据结构,例如验证器Validator,分布式ID生成器Snowflake等
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -8,7 +8,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
/**
|
/**
|
||||||
* 驼峰Key风格的Map<br>
|
* 驼峰Key风格的Map<br>
|
||||||
* 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖
|
* 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖
|
||||||
*
|
*
|
||||||
* @author Looly
|
* @author Looly
|
||||||
*
|
*
|
||||||
* @param <K> 键类型
|
* @param <K> 键类型
|
||||||
@ -28,7 +28,7 @@ public class CamelCaseMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
*/
|
*/
|
||||||
public CamelCaseMap(int initialCapacity) {
|
public CamelCaseMap(int initialCapacity) {
|
||||||
@ -37,7 +37,7 @@ public class CamelCaseMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
public CamelCaseMap(Map<? extends K, ? extends V> m) {
|
public CamelCaseMap(Map<? extends K, ? extends V> m) {
|
||||||
@ -46,7 +46,7 @@ public class CamelCaseMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
@ -57,7 +57,7 @@ public class CamelCaseMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
*/
|
*/
|
||||||
@ -68,7 +68,7 @@ public class CamelCaseMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将Key转为驼峰风格,如果key为字符串的话
|
* 将Key转为驼峰风格,如果key为字符串的话
|
||||||
*
|
*
|
||||||
* @param key KEY
|
* @param key KEY
|
||||||
* @return 驼峰Key
|
* @return 驼峰Key
|
||||||
*/
|
*/
|
||||||
|
@ -6,7 +6,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* 忽略大小写的Map<br>
|
* 忽略大小写的Map<br>
|
||||||
* 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖
|
* 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖
|
||||||
*
|
*
|
||||||
* @author Looly
|
* @author Looly
|
||||||
*
|
*
|
||||||
* @param <K> 键类型
|
* @param <K> 键类型
|
||||||
@ -26,7 +26,7 @@ public class CaseInsensitiveMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
*/
|
*/
|
||||||
public CaseInsensitiveMap(int initialCapacity) {
|
public CaseInsensitiveMap(int initialCapacity) {
|
||||||
@ -35,7 +35,7 @@ public class CaseInsensitiveMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
public CaseInsensitiveMap(Map<? extends K, ? extends V> m) {
|
public CaseInsensitiveMap(Map<? extends K, ? extends V> m) {
|
||||||
@ -44,7 +44,7 @@ public class CaseInsensitiveMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
* @param m Map
|
* @param m Map
|
||||||
* @since 3.1.2
|
* @since 3.1.2
|
||||||
@ -53,10 +53,10 @@ public class CaseInsensitiveMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
this(m.size(), loadFactor);
|
this(m.size(), loadFactor);
|
||||||
this.putAll(m);
|
this.putAll(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
*/
|
*/
|
||||||
@ -67,7 +67,7 @@ public class CaseInsensitiveMap<K, V> extends CustomKeyMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将Key转为小写
|
* 将Key转为小写
|
||||||
*
|
*
|
||||||
* @param key KEY
|
* @param key KEY
|
||||||
* @return 小写KEY
|
* @return 小写KEY
|
||||||
*/
|
*/
|
||||||
|
@ -4,7 +4,7 @@ import java.util.LinkedHashMap;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 固定大小的{@link LinkedHashMap} 实现
|
* 固定大小的{@link LinkedHashMap} 实现
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
* @param <K> 键类型
|
* @param <K> 键类型
|
||||||
@ -15,10 +15,10 @@ public class FixedLinkedHashMap<K, V> extends LinkedHashMap<K, V> {
|
|||||||
|
|
||||||
/** 容量,超过此容量自动删除末尾元素 */
|
/** 容量,超过此容量自动删除末尾元素 */
|
||||||
private int capacity;
|
private int capacity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param capacity 容量,实际初始容量比容量大1
|
* @param capacity 容量,实际初始容量比容量大1
|
||||||
*/
|
*/
|
||||||
public FixedLinkedHashMap(int capacity) {
|
public FixedLinkedHashMap(int capacity) {
|
||||||
@ -28,7 +28,7 @@ public class FixedLinkedHashMap<K, V> extends LinkedHashMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取容量
|
* 获取容量
|
||||||
*
|
*
|
||||||
* @return 容量
|
* @return 容量
|
||||||
*/
|
*/
|
||||||
public int getCapacity() {
|
public int getCapacity() {
|
||||||
@ -37,7 +37,7 @@ public class FixedLinkedHashMap<K, V> extends LinkedHashMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置容量
|
* 设置容量
|
||||||
*
|
*
|
||||||
* @param capacity 容量
|
* @param capacity 容量
|
||||||
*/
|
*/
|
||||||
public void setCapacity(int capacity) {
|
public void setCapacity(int capacity) {
|
||||||
|
@ -5,14 +5,14 @@ import java.util.Map;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Map创建类
|
* Map创建类
|
||||||
*
|
*
|
||||||
* @param <K> Key类型
|
* @param <K> Key类型
|
||||||
* @param <V> Value类型
|
* @param <V> Value类型
|
||||||
* @since 3.1.1
|
* @since 3.1.1
|
||||||
*/
|
*/
|
||||||
public class MapBuilder<K, V> implements Serializable{
|
public class MapBuilder<K, V> implements Serializable{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private final Map<K, V> map;
|
private final Map<K, V> map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,7 +42,7 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建Builder
|
* 创建Builder
|
||||||
*
|
*
|
||||||
* @param <K> Key类型
|
* @param <K> Key类型
|
||||||
* @param <V> Value类型
|
* @param <V> Value类型
|
||||||
* @param map Map实体类
|
* @param map Map实体类
|
||||||
@ -55,7 +55,7 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 链式Map创建类
|
* 链式Map创建类
|
||||||
*
|
*
|
||||||
* @param map 要使用的Map实现类
|
* @param map 要使用的Map实现类
|
||||||
*/
|
*/
|
||||||
public MapBuilder(Map<K, V> map) {
|
public MapBuilder(Map<K, V> map) {
|
||||||
@ -64,7 +64,7 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 链式Map创建
|
* 链式Map创建
|
||||||
*
|
*
|
||||||
* @param k Key类型
|
* @param k Key类型
|
||||||
* @param v Value类型
|
* @param v Value类型
|
||||||
* @return 当前类
|
* @return 当前类
|
||||||
@ -76,7 +76,7 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 链式Map创建
|
* 链式Map创建
|
||||||
*
|
*
|
||||||
* @param map 合并map
|
* @param map 合并map
|
||||||
* @return 当前类
|
* @return 当前类
|
||||||
*/
|
*/
|
||||||
@ -87,16 +87,16 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建后的map
|
* 创建后的map
|
||||||
*
|
*
|
||||||
* @return 创建后的map
|
* @return 创建后的map
|
||||||
*/
|
*/
|
||||||
public Map<K, V> map() {
|
public Map<K, V> map() {
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建后的map
|
* 创建后的map
|
||||||
*
|
*
|
||||||
* @return 创建后的map
|
* @return 创建后的map
|
||||||
* @since 3.3.0
|
* @since 3.3.0
|
||||||
*/
|
*/
|
||||||
@ -106,7 +106,7 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将map转成字符串
|
* 将map转成字符串
|
||||||
*
|
*
|
||||||
* @param separator entry之间的连接符
|
* @param separator entry之间的连接符
|
||||||
* @param keyValueSeparator kv之间的连接符
|
* @param keyValueSeparator kv之间的连接符
|
||||||
* @return 连接字符串
|
* @return 连接字符串
|
||||||
@ -117,7 +117,7 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将map转成字符串
|
* 将map转成字符串
|
||||||
*
|
*
|
||||||
* @param separator entry之间的连接符
|
* @param separator entry之间的连接符
|
||||||
* @param keyValueSeparator kv之间的连接符
|
* @param keyValueSeparator kv之间的连接符
|
||||||
* @return 连接后的字符串
|
* @return 连接后的字符串
|
||||||
@ -128,7 +128,7 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将map转成字符串
|
* 将map转成字符串
|
||||||
*
|
*
|
||||||
* @param separator entry之间的连接符
|
* @param separator entry之间的连接符
|
||||||
* @param keyValueSeparator kv之间的连接符
|
* @param keyValueSeparator kv之间的连接符
|
||||||
* @param isIgnoreNull 是否忽略null的键和值
|
* @param isIgnoreNull 是否忽略null的键和值
|
||||||
|
@ -17,7 +17,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Map代理,提供各种getXXX方法,并提供默认值支持
|
* Map代理,提供各种getXXX方法,并提供默认值支持
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
*/
|
*/
|
||||||
@ -30,7 +30,7 @@ public class MapProxy implements Map<Object, Object>, OptNullBasicTypeFromObject
|
|||||||
/**
|
/**
|
||||||
* 创建代理Map<br>
|
* 创建代理Map<br>
|
||||||
* 此类对Map做一次包装,提供各种getXXX方法
|
* 此类对Map做一次包装,提供各种getXXX方法
|
||||||
*
|
*
|
||||||
* @param map 被代理的Map
|
* @param map 被代理的Map
|
||||||
* @return {@link MapProxy}
|
* @return {@link MapProxy}
|
||||||
*/
|
*/
|
||||||
@ -40,7 +40,7 @@ public class MapProxy implements Map<Object, Object>, OptNullBasicTypeFromObject
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param map 被代理的Map
|
* @param map 被代理的Map
|
||||||
*/
|
*/
|
||||||
public MapProxy(Map<?, ?> map) {
|
public MapProxy(Map<?, ?> map) {
|
||||||
@ -138,7 +138,7 @@ public class MapProxy implements Map<Object, Object>, OptNullBasicTypeFromObject
|
|||||||
} else if ("toString".equals(methodName)) {
|
} else if ("toString".equals(methodName)) {
|
||||||
return this.toString();
|
return this.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(fieldName)) {
|
if (StrUtil.isNotBlank(fieldName)) {
|
||||||
if (false == this.containsKey(fieldName)) {
|
if (false == this.containsKey(fieldName)) {
|
||||||
// 驼峰不存在转下划线尝试
|
// 驼峰不存在转下划线尝试
|
||||||
@ -163,7 +163,7 @@ public class MapProxy implements Map<Object, Object>, OptNullBasicTypeFromObject
|
|||||||
|
|
||||||
throw new UnsupportedOperationException(method.toGenericString());
|
throw new UnsupportedOperationException(method.toGenericString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将Map代理为指定接口的动态代理对象
|
* 将Map代理为指定接口的动态代理对象
|
||||||
*
|
*
|
||||||
|
@ -9,7 +9,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 值作为集合的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示
|
* 值作为集合的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
* @param <K> 键类型
|
* @param <K> 键类型
|
||||||
@ -33,7 +33,7 @@ public abstract class CollectionValueMap<K, V> extends MapWrapper<K, Collection<
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
*/
|
*/
|
||||||
public CollectionValueMap(int initialCapacity) {
|
public CollectionValueMap(int initialCapacity) {
|
||||||
@ -42,7 +42,7 @@ public abstract class CollectionValueMap<K, V> extends MapWrapper<K, Collection<
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
public CollectionValueMap(Map<? extends K, ? extends Collection<V>> m) {
|
public CollectionValueMap(Map<? extends K, ? extends Collection<V>> m) {
|
||||||
@ -51,7 +51,7 @@ public abstract class CollectionValueMap<K, V> extends MapWrapper<K, Collection<
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
@ -62,7 +62,7 @@ public abstract class CollectionValueMap<K, V> extends MapWrapper<K, Collection<
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
*/
|
*/
|
||||||
@ -74,7 +74,7 @@ public abstract class CollectionValueMap<K, V> extends MapWrapper<K, Collection<
|
|||||||
/**
|
/**
|
||||||
* 放入Value<br>
|
* 放入Value<br>
|
||||||
* 如果键对应值列表有值,加入,否则创建一个新列表后加入
|
* 如果键对应值列表有值,加入,否则创建一个新列表后加入
|
||||||
*
|
*
|
||||||
* @param key 键
|
* @param key 键
|
||||||
* @param value 值
|
* @param value 值
|
||||||
*/
|
*/
|
||||||
@ -89,7 +89,7 @@ public abstract class CollectionValueMap<K, V> extends MapWrapper<K, Collection<
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取值
|
* 获取值
|
||||||
*
|
*
|
||||||
* @param key 键
|
* @param key 键
|
||||||
* @param index 第几个值的索引,越界返回null
|
* @param index 第几个值的索引,越界返回null
|
||||||
* @return 值或null
|
* @return 值或null
|
||||||
@ -102,7 +102,7 @@ public abstract class CollectionValueMap<K, V> extends MapWrapper<K, Collection<
|
|||||||
/**
|
/**
|
||||||
* 创建集合<br>
|
* 创建集合<br>
|
||||||
* 此方法用于创建在putValue后追加值所在的集合,子类实现此方法创建不同类型的集合
|
* 此方法用于创建在putValue后追加值所在的集合,子类实现此方法创建不同类型的集合
|
||||||
*
|
*
|
||||||
* @return {@link Collection}
|
* @return {@link Collection}
|
||||||
*/
|
*/
|
||||||
protected abstract Collection<V> createCollection();
|
protected abstract Collection<V> createCollection();
|
||||||
|
@ -8,7 +8,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 值作为集合List的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示
|
* 值作为集合List的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
* @param <K> 键类型
|
* @param <K> 键类型
|
||||||
@ -28,7 +28,7 @@ public class ListValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
*/
|
*/
|
||||||
public ListValueMap(int initialCapacity) {
|
public ListValueMap(int initialCapacity) {
|
||||||
@ -37,7 +37,7 @@ public class ListValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
public ListValueMap(Map<? extends K, ? extends Collection<V>> m) {
|
public ListValueMap(Map<? extends K, ? extends Collection<V>> m) {
|
||||||
@ -46,7 +46,7 @@ public class ListValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
@ -57,7 +57,7 @@ public class ListValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
*/
|
*/
|
||||||
@ -70,7 +70,7 @@ public class ListValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
public List<V> get(Object key) {
|
public List<V> get(Object key) {
|
||||||
return (List<V>) super.get(key);
|
return (List<V>) super.get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Collection<V> createCollection() {
|
protected Collection<V> createCollection() {
|
||||||
return new ArrayList<>(DEFAULT_COLLCTION_INITIAL_CAPACITY);
|
return new ArrayList<>(DEFAULT_COLLCTION_INITIAL_CAPACITY);
|
||||||
|
@ -8,7 +8,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 值作为集合Set(LinkedHashSet)的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示
|
* 值作为集合Set(LinkedHashSet)的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
* @param <K> 键类型
|
* @param <K> 键类型
|
||||||
@ -28,7 +28,7 @@ public class SetValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
*/
|
*/
|
||||||
public SetValueMap(int initialCapacity) {
|
public SetValueMap(int initialCapacity) {
|
||||||
@ -37,7 +37,7 @@ public class SetValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
public SetValueMap(Map<? extends K, ? extends Collection<V>> m) {
|
public SetValueMap(Map<? extends K, ? extends Collection<V>> m) {
|
||||||
@ -46,7 +46,7 @@ public class SetValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
* @param m Map
|
* @param m Map
|
||||||
*/
|
*/
|
||||||
@ -57,7 +57,7 @@ public class SetValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param initialCapacity 初始大小
|
* @param initialCapacity 初始大小
|
||||||
* @param loadFactor 加载因子
|
* @param loadFactor 加载因子
|
||||||
*/
|
*/
|
||||||
@ -70,7 +70,7 @@ public class SetValueMap<K, V> extends CollectionValueMap<K, V> {
|
|||||||
public Set<V> get(Object key) {
|
public Set<V> get(Object key) {
|
||||||
return (Set<V>) super.get(key);
|
return (Set<V>) super.get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Collection<V> createCollection() {
|
protected Collection<V> createCollection() {
|
||||||
return new LinkedHashSet<>(DEFAULT_COLLCTION_INITIAL_CAPACITY);
|
return new LinkedHashSet<>(DEFAULT_COLLCTION_INITIAL_CAPACITY);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* 列表类型值的Map实现
|
* 列表类型值的Map实现
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* Map相关封装,提供特殊Map实现以及Map工具MapUtil
|
* Map相关封装,提供特殊Map实现以及Map工具MapUtil
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -11,7 +11,7 @@ import cn.hutool.core.util.NumberUtil;
|
|||||||
/**
|
/**
|
||||||
* 排列A(n, m)<br>
|
* 排列A(n, m)<br>
|
||||||
* 排列组合相关类 参考:http://cgs1999.iteye.com/blog/2327664
|
* 排列组合相关类 参考:http://cgs1999.iteye.com/blog/2327664
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
* @since 4.0.7
|
* @since 4.0.7
|
||||||
*/
|
*/
|
||||||
@ -22,7 +22,7 @@ public class Arrangement implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param datas 用于排列的数据
|
* @param datas 用于排列的数据
|
||||||
*/
|
*/
|
||||||
public Arrangement(String[] datas) {
|
public Arrangement(String[] datas) {
|
||||||
@ -31,7 +31,7 @@ public class Arrangement implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算排列数,即A(n, n) = n!
|
* 计算排列数,即A(n, n) = n!
|
||||||
*
|
*
|
||||||
* @param n 总数
|
* @param n 总数
|
||||||
* @return 排列数
|
* @return 排列数
|
||||||
*/
|
*/
|
||||||
@ -41,7 +41,7 @@ public class Arrangement implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算排列数,即A(n, m) = n!/(n-m)!
|
* 计算排列数,即A(n, m) = n!/(n-m)!
|
||||||
*
|
*
|
||||||
* @param n 总数
|
* @param n 总数
|
||||||
* @param m 选择的个数
|
* @param m 选择的个数
|
||||||
* @return 排列数
|
* @return 排列数
|
||||||
@ -55,7 +55,7 @@ public class Arrangement implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算排列总数,即A(n, 1) + A(n, 2) + A(n, 3)...
|
* 计算排列总数,即A(n, 1) + A(n, 2) + A(n, 3)...
|
||||||
*
|
*
|
||||||
* @param n 总数
|
* @param n 总数
|
||||||
* @return 排列数
|
* @return 排列数
|
||||||
*/
|
*/
|
||||||
@ -69,7 +69,7 @@ public class Arrangement implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 全排列选择(列表全部参与排列)
|
* 全排列选择(列表全部参与排列)
|
||||||
*
|
*
|
||||||
* @return 所有排列列表
|
* @return 所有排列列表
|
||||||
*/
|
*/
|
||||||
public List<String[]> select() {
|
public List<String[]> select() {
|
||||||
@ -78,7 +78,7 @@ public class Arrangement implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 排列选择(从列表中选择m个排列)
|
* 排列选择(从列表中选择m个排列)
|
||||||
*
|
*
|
||||||
* @param m 选择个数
|
* @param m 选择个数
|
||||||
* @return 所有排列列表
|
* @return 所有排列列表
|
||||||
*/
|
*/
|
||||||
@ -90,7 +90,7 @@ public class Arrangement implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 排列所有组合,即A(n, 1) + A(n, 2) + A(n, 3)...
|
* 排列所有组合,即A(n, 1) + A(n, 2) + A(n, 3)...
|
||||||
*
|
*
|
||||||
* @return 全排列结果
|
* @return 全排列结果
|
||||||
*/
|
*/
|
||||||
public List<String[]> selectAll() {
|
public List<String[]> selectAll() {
|
||||||
@ -104,7 +104,7 @@ public class Arrangement implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 排列选择<br>
|
* 排列选择<br>
|
||||||
* 排列方式为先从数据数组中取出一个元素,再把剩余的元素作为新的基数,依次列推,直到选择到足够的元素
|
* 排列方式为先从数据数组中取出一个元素,再把剩余的元素作为新的基数,依次列推,直到选择到足够的元素
|
||||||
*
|
*
|
||||||
* @param datas 选择的基数
|
* @param datas 选择的基数
|
||||||
* @param resultList 前面(resultIndex-1)个的排列结果
|
* @param resultList 前面(resultIndex-1)个的排列结果
|
||||||
* @param resultIndex 选择索引,从0开始
|
* @param resultIndex 选择索引,从0开始
|
||||||
|
@ -5,7 +5,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 数学相关方法工具类<br>
|
* 数学相关方法工具类<br>
|
||||||
* 此工具类与{@link cn.hutool.core.util.NumberUtil}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算
|
* 此工具类与{@link cn.hutool.core.util.NumberUtil}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
* @since 4.0.7
|
* @since 4.0.7
|
||||||
*/
|
*/
|
||||||
@ -14,7 +14,7 @@ public class MathUtil {
|
|||||||
//--------------------------------------------------------------------------------------------- Arrangement
|
//--------------------------------------------------------------------------------------------- Arrangement
|
||||||
/**
|
/**
|
||||||
* 计算排列数,即A(n, m) = n!/(n-m)!
|
* 计算排列数,即A(n, m) = n!/(n-m)!
|
||||||
*
|
*
|
||||||
* @param n 总数
|
* @param n 总数
|
||||||
* @param m 选择的个数
|
* @param m 选择的个数
|
||||||
* @return 排列数
|
* @return 排列数
|
||||||
@ -22,10 +22,10 @@ public class MathUtil {
|
|||||||
public static long arrangementCount(int n, int m) {
|
public static long arrangementCount(int n, int m) {
|
||||||
return Arrangement.count(n, m);
|
return Arrangement.count(n, m);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算排列数,即A(n, n) = n!
|
* 计算排列数,即A(n, n) = n!
|
||||||
*
|
*
|
||||||
* @param n 总数
|
* @param n 总数
|
||||||
* @return 排列数
|
* @return 排列数
|
||||||
*/
|
*/
|
||||||
@ -35,7 +35,7 @@ public class MathUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 排列选择(从列表中选择n个排列)
|
* 排列选择(从列表中选择n个排列)
|
||||||
*
|
*
|
||||||
* @param datas 待选列表
|
* @param datas 待选列表
|
||||||
* @param m 选择个数
|
* @param m 选择个数
|
||||||
* @return 所有排列列表
|
* @return 所有排列列表
|
||||||
@ -43,21 +43,21 @@ public class MathUtil {
|
|||||||
public static List<String[]> arrangementSelect(String[] datas, int m) {
|
public static List<String[]> arrangementSelect(String[] datas, int m) {
|
||||||
return new Arrangement(datas).select(m);
|
return new Arrangement(datas).select(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 全排列选择(列表全部参与排列)
|
* 全排列选择(列表全部参与排列)
|
||||||
*
|
*
|
||||||
* @param datas 待选列表
|
* @param datas 待选列表
|
||||||
* @return 所有排列列表
|
* @return 所有排列列表
|
||||||
*/
|
*/
|
||||||
public static List<String[]> arrangementSelect(String[] datas) {
|
public static List<String[]> arrangementSelect(String[] datas) {
|
||||||
return new Arrangement(datas).select();
|
return new Arrangement(datas).select();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------- Combination
|
//--------------------------------------------------------------------------------------------- Combination
|
||||||
/**
|
/**
|
||||||
* 计算组合数,即C(n, m) = n!/((n-m)! * m!)
|
* 计算组合数,即C(n, m) = n!/((n-m)! * m!)
|
||||||
*
|
*
|
||||||
* @param n 总数
|
* @param n 总数
|
||||||
* @param m 选择的个数
|
* @param m 选择的个数
|
||||||
* @return 组合数
|
* @return 组合数
|
||||||
@ -68,7 +68,7 @@ public class MathUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 组合选择(从列表中选择n个组合)
|
* 组合选择(从列表中选择n个组合)
|
||||||
*
|
*
|
||||||
* @param datas 待选列表
|
* @param datas 待选列表
|
||||||
* @param m 选择个数
|
* @param m 选择个数
|
||||||
* @return 所有组合列表
|
* @return 所有组合列表
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* 提供数学计算相关封装,包括排列组合等,入口为MathUtil
|
* 提供数学计算相关封装,包括排列组合等,入口为MathUtil
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -7,7 +7,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
* 本地端口生成器<br>
|
* 本地端口生成器<br>
|
||||||
* 用于生成本地可用(未被占用)的端口号<br>
|
* 用于生成本地可用(未被占用)的端口号<br>
|
||||||
* 注意:多线程甚至单线程访问时可能会返回同一端口(例如获取了端口但是没有使用)
|
* 注意:多线程甚至单线程访问时可能会返回同一端口(例如获取了端口但是没有使用)
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
* @since 4.0.3
|
* @since 4.0.3
|
||||||
*
|
*
|
||||||
@ -20,7 +20,7 @@ public class LocalPortGenerater implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param beginPort 起始端口号
|
* @param beginPort 起始端口号
|
||||||
*/
|
*/
|
||||||
public LocalPortGenerater(int beginPort) {
|
public LocalPortGenerater(int beginPort) {
|
||||||
@ -29,7 +29,7 @@ public class LocalPortGenerater implements Serializable{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成一个本地端口,用于远程端口映射
|
* 生成一个本地端口,用于远程端口映射
|
||||||
*
|
*
|
||||||
* @return 未被使用的本地端口
|
* @return 未被使用的本地端口
|
||||||
*/
|
*/
|
||||||
public int generate() {
|
public int generate() {
|
||||||
|
Loading…
Reference in New Issue
Block a user