From 3928cbb21fbd1c6ce6e267559cc0f25092a611d4 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 21 Aug 2019 16:46:05 +0800 Subject: [PATCH] fix issue#503 --- .../hutool/core/getter/BasicTypeGetter.java | 31 ++++++++++--------- .../main/java/cn/hutool/core/lang/Dict.java | 25 +++++++++++---- .../cn/hutool/core/swing/DesktopUtil.java | 13 +++++++- .../java/cn/hutool/extra/ssh/JschUtil.java | 2 +- 4 files changed, 49 insertions(+), 22 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/getter/BasicTypeGetter.java b/hutool-core/src/main/java/cn/hutool/core/getter/BasicTypeGetter.java index a4c2256cc..ac668ceac 100644 --- a/hutool-core/src/main/java/cn/hutool/core/getter/BasicTypeGetter.java +++ b/hutool-core/src/main/java/cn/hutool/core/getter/BasicTypeGetter.java @@ -7,18 +7,20 @@ import java.util.Date; /** * 基本类型的getter接口
* 提供一个统一的接口定义返回不同类型的值(基本类型)
+ * * @author Looly */ public interface BasicTypeGetter { /*-------------------------- 基本类型 start -------------------------------*/ - + /** * 获取Object属性值 + * * @param key 属性名 * @return 属性值 */ Object getObj(K key); - + /** * 获取字符串型属性值 * @@ -26,7 +28,7 @@ public interface BasicTypeGetter { * @return 属性值 */ String getStr(K key); - + /** * 获取int型属性值 * @@ -34,7 +36,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Integer getInt(K key); - + /** * 获取short型属性值 * @@ -42,7 +44,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Short getShort(K key); - + /** * 获取boolean型属性值 * @@ -50,7 +52,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Boolean getBool(K key); - + /** * 获取long型属性值 * @@ -58,7 +60,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Long getLong(K key); - + /** * 获取char型属性值 * @@ -66,7 +68,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Character getChar(K key); - + /** * 获取float型属性值
* @@ -74,7 +76,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Float getFloat(K key); - + /** * 获取double型属性值 * @@ -82,7 +84,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Double getDouble(K key); - + /** * 获取byte型属性值 * @@ -90,7 +92,7 @@ public interface BasicTypeGetter { * @return 属性值 */ Byte getByte(K key); - + /** * 获取BigDecimal型属性值 * @@ -98,7 +100,7 @@ public interface BasicTypeGetter { * @return 属性值 */ BigDecimal getBigDecimal(K key); - + /** * 获取BigInteger型属性值 * @@ -106,7 +108,7 @@ public interface BasicTypeGetter { * @return 属性值 */ BigInteger getBigInteger(K key); - + /** * 获得Enum类型的值 * @@ -116,9 +118,10 @@ public interface BasicTypeGetter { * @return Enum类型的值,无则返回Null */ > E getEnum(Class clazz, K key); - + /** * 获取Date类型值 + * * @param key 属性名 * @return Date类型属性值 */ diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java b/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java index 2fbed5924..a1756207b 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java @@ -26,7 +26,7 @@ public class Dict extends LinkedHashMap implements BasicTypeGett static final float DEFAULT_LOAD_FACTOR = 0.75f; static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 - + /** 是否大小写不敏感 */ private boolean caseInsensitive; @@ -59,7 +59,7 @@ public class Dict extends LinkedHashMap implements BasicTypeGett public Dict() { this(false); } - + /** * 构造 * @@ -77,7 +77,7 @@ public class Dict extends LinkedHashMap implements BasicTypeGett public Dict(int initialCapacity) { this(initialCapacity, false); } - + /** * 构造 * @@ -87,7 +87,7 @@ public class Dict extends LinkedHashMap implements BasicTypeGett public Dict(int initialCapacity, boolean caseInsensitive) { this(initialCapacity, DEFAULT_LOAD_FACTOR, caseInsensitive); } - + /** * 构造 * @@ -297,6 +297,19 @@ public class Dict extends LinkedHashMap implements BasicTypeGett return super.get(key); } + /** + * 获得特定类型值 + * + * @param 值类型 + * @param attr 字段名 + * @param defaultValue 默认值 + * @return 字段值 + * @since 4.6.3 + */ + public T getBean(String attr) { + return get(attr, null); + } + /** * 获得特定类型值 * @@ -439,7 +452,7 @@ public class Dict extends LinkedHashMap implements BasicTypeGett return get(attr, null); } // -------------------------------------------------------------------- Get end - + @Override public Object put(String key, Object value) { return super.put(customKey(key), value); @@ -449,7 +462,7 @@ public class Dict extends LinkedHashMap implements BasicTypeGett public Dict clone() { return (Dict) super.clone(); } - + /** * 将Key转为小写 * diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/DesktopUtil.java b/hutool-core/src/main/java/cn/hutool/core/swing/DesktopUtil.java index 921fb31ee..f6d3b8a4a 100644 --- a/hutool-core/src/main/java/cn/hutool/core/swing/DesktopUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/swing/DesktopUtil.java @@ -3,6 +3,7 @@ package cn.hutool.core.swing; import java.awt.Desktop; import java.io.File; import java.io.IOException; +import java.net.URI; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.util.URLUtil; @@ -31,9 +32,19 @@ public class DesktopUtil { * @param url URL地址 */ public static void browse(String url) { + browse(URLUtil.toURI(url)); + } + + /** + * 使用平台默认浏览器打开指定URI地址 + * + * @param uri URI地址 + * @since 4.6.3 + */ + public static void browse(URI uri) { final Desktop dsktop = getDsktop(); try { - dsktop.browse(URLUtil.toURI(url)); + dsktop.browse(uri); } catch (IOException e) { throw new IORuntimeException(e); } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java index 918546980..22176b609 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java @@ -285,7 +285,7 @@ public class JschUtil { } catch (IOException e) { throw new IORuntimeException(e); } catch (JSchException e) { - throw new IORuntimeException(e); + throw new JschRuntimeException(e); } finally { IoUtil.close(in); close(channel);