mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix bug
This commit is contained in:
@@ -19,6 +19,8 @@ import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.RandomAccess;
|
||||
|
||||
import static cn.hutool.json.JSONConverter.*;
|
||||
|
||||
/**
|
||||
* JSON数组<br>
|
||||
* JSON数组是表示中括号括住的数据表现形式<br>
|
||||
@@ -30,7 +32,7 @@ import java.util.RandomAccess;
|
||||
*
|
||||
* @author looly
|
||||
*/
|
||||
public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>, RandomAccess {
|
||||
public class JSONArray implements JSON, JSONGetter<Integer>, List<Object>, RandomAccess {
|
||||
private static final long serialVersionUID = 2664900568717612292L;
|
||||
|
||||
/** 默认初始大小 */
|
||||
@@ -236,7 +238,7 @@ public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>
|
||||
|
||||
@Override
|
||||
public <T> T getByPath(String expression, Class<T> resultType) {
|
||||
return JSONConverter.jsonConvert(resultType, getByPath(expression), true);
|
||||
return jsonConvert(resultType, getByPath(expression), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -314,6 +316,7 @@ public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public Iterator<Object> iterator() {
|
||||
return rawList.iterator();
|
||||
@@ -344,13 +347,14 @@ public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>
|
||||
return rawList.contains(o);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public Object[] toArray() {
|
||||
return rawList.toArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings({"unchecked", "NullableProblems"})
|
||||
public <T> T[] toArray(T[] a) {
|
||||
return (T[]) JSONConverter.toArray(this, a.getClass().getComponentType());
|
||||
}
|
||||
@@ -370,11 +374,13 @@ public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>
|
||||
return rawList.remove(o);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public boolean containsAll(Collection<?> c) {
|
||||
return rawList.containsAll(c);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public boolean addAll(Collection<?> c) {
|
||||
if (CollUtil.isEmpty(c)) {
|
||||
@@ -386,6 +392,7 @@ public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public boolean addAll(int index, Collection<?> c) {
|
||||
if (CollUtil.isEmpty(c)) {
|
||||
@@ -398,11 +405,13 @@ public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>
|
||||
return rawList.addAll(index, list);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public boolean removeAll(Collection<?> c) {
|
||||
return this.rawList.removeAll(c);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public boolean retainAll(Collection<?> c) {
|
||||
return this.rawList.retainAll(c);
|
||||
@@ -446,16 +455,19 @@ public class JSONArray extends JSONGetter<Integer> implements JSON, List<Object>
|
||||
return this.rawList.lastIndexOf(o);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public ListIterator<Object> listIterator() {
|
||||
return this.rawList.listIterator();
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public ListIterator<Object> listIterator(int index) {
|
||||
return this.rawList.listIterator(index);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public List<Object> subList(int fromIndex, int toIndex) {
|
||||
return this.rawList.subList(fromIndex, toIndex);
|
||||
|
@@ -9,7 +9,7 @@ import cn.hutool.core.getter.OptNullBasicTypeFromObjectGetter;
|
||||
*
|
||||
* @param <K> Key类型
|
||||
*/
|
||||
public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
public interface JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
|
||||
/**
|
||||
* key对应值是否为<code>null</code>或无此key
|
||||
@@ -17,7 +17,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @param key 键
|
||||
* @return true 无此key或值为<code>null</code>或{@link JSONNull#NULL}返回<code>false</code>,其它返回<code>true</code>
|
||||
*/
|
||||
public boolean isNull(K key) {
|
||||
default boolean isNull(K key) {
|
||||
return JSONNull.NULL.equals(this.getObj(key));
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @return 字符串类型值
|
||||
* @since 4.2.2
|
||||
*/
|
||||
public String getStrEscaped(K key) {
|
||||
default String getStrEscaped(K key) {
|
||||
return getStrEscaped(key, null);
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @return 字符串类型值
|
||||
* @since 4.2.2
|
||||
*/
|
||||
public String getStrEscaped(K key, String defaultValue) {
|
||||
default String getStrEscaped(K key, String defaultValue) {
|
||||
return JSONUtil.escape(getStr(key, defaultValue));
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @param key KEY
|
||||
* @return JSONArray对象,如果值为null或者非JSONArray类型,返回null
|
||||
*/
|
||||
public JSONArray getJSONArray(K key) {
|
||||
default JSONArray getJSONArray(K key) {
|
||||
final Object object = this.getObj(key);
|
||||
if(null == object) {
|
||||
return null;
|
||||
@@ -70,7 +70,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @param key KEY
|
||||
* @return JSONArray对象,如果值为null或者非JSONObject类型,返回null
|
||||
*/
|
||||
public JSONObject getJSONObject(K key) {
|
||||
default JSONObject getJSONObject(K key) {
|
||||
final Object object = this.getObj(key);
|
||||
if(null == object) {
|
||||
return null;
|
||||
@@ -92,7 +92,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @return Bean对象,如果值为null或者非JSONObject类型,返回null
|
||||
* @since 3.1.1
|
||||
*/
|
||||
public <T> T getBean(K key, Class<T> beanType) {
|
||||
default <T> T getBean(K key, Class<T> beanType) {
|
||||
final JSONObject obj = getJSONObject(key);
|
||||
return (null == obj) ? null : obj.toBean(beanType);
|
||||
}
|
||||
@@ -108,7 +108,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @throws ConvertException 转换异常
|
||||
* @since 3.0.8
|
||||
*/
|
||||
public <T> T get(K key, Class<T> type) throws ConvertException{
|
||||
default <T> T get(K key, Class<T> type) throws ConvertException{
|
||||
return get(key, type, false);
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ public abstract class JSONGetter<K> extends OptNullBasicTypeFromObjectGetter<K>{
|
||||
* @throws ConvertException 转换异常
|
||||
* @since 3.0.8
|
||||
*/
|
||||
public <T> T get(K key, Class<T> type, boolean ignoreError) throws ConvertException{
|
||||
default <T> T get(K key, Class<T> type, boolean ignoreError) throws ConvertException{
|
||||
final Object value = this.getObj(key);
|
||||
if(null == value){
|
||||
return null;
|
||||
|
@@ -37,7 +37,7 @@ import java.util.Set;
|
||||
*
|
||||
* @author looly
|
||||
*/
|
||||
public class JSONObject extends JSONGetter<String> implements JSON, Map<String, Object> {
|
||||
public class JSONObject implements JSON, JSONGetter<String>, Map<String, Object> {
|
||||
private static final long serialVersionUID = -330220388580734346L;
|
||||
|
||||
/** 默认初始大小 */
|
||||
@@ -163,7 +163,7 @@ public class JSONObject extends JSONGetter<String> implements JSON, Map<String,
|
||||
*/
|
||||
public JSONObject(Object source, boolean ignoreNullValue, boolean isOrder) {
|
||||
this(source, JSONConfig.create().setOrder(isOrder)//
|
||||
.setIgnoreCase((source instanceof CaseInsensitiveMap) || (source instanceof CaseInsensitiveLinkedMap))//
|
||||
.setIgnoreCase((source instanceof CaseInsensitiveMap))//
|
||||
.setIgnoreNullValue(ignoreNullValue));
|
||||
}
|
||||
|
||||
@@ -478,16 +478,19 @@ public class JSONObject extends JSONGetter<String> implements JSON, Map<String,
|
||||
rawHashMap.clear();
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public Set<String> keySet() {
|
||||
return this.rawHashMap.keySet();
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public Collection<Object> values() {
|
||||
return rawHashMap.values();
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public Set<Entry<String, Object>> entrySet() {
|
||||
return rawHashMap.entrySet();
|
||||
@@ -643,7 +646,7 @@ public class JSONObject extends JSONGetter<String> implements JSON, Map<String,
|
||||
*
|
||||
* @param source JavaBean或者Map对象或者String
|
||||
*/
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
@SuppressWarnings({"rawtypes", "unchecked", "StatementWithEmptyBody"})
|
||||
private void init(Object source) {
|
||||
if (null == source) {
|
||||
return;
|
||||
|
Reference in New Issue
Block a user