Skip to content

Commit

Permalink
bug fix for toJavaList, for issue #699
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Aug 18, 2022
1 parent df0d72e commit 487267a
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 4 deletions.
3 changes: 1 addition & 2 deletions core/src/main/java/com/alibaba/fastjson2/JSONArray.java
Original file line number Diff line number Diff line change
Expand Up @@ -1083,9 +1083,8 @@ public <T> T[] toArray(Class<T> itemClass, JSONReader.Feature... features) {
*
* @param clazz specify the {@code Class<T>} to be converted
* @param features features to be enabled in parsing
* @deprecated since 2.0.4, please use {@link #toList(Class, JSONReader.Feature...)}
* please use {@link #toList(Class, JSONReader.Feature...)}
*/
@Deprecated
public <T> List<T> toJavaList(Class<T> clazz, JSONReader.Feature... features) {
return toList(clazz, features);
}
Expand Down
18 changes: 18 additions & 0 deletions core/src/test/java/com/alibaba/fastjson2/issues/Issue699.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.alibaba.fastjson2.issues;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import org.junit.jupiter.api.Test;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class Issue699 {
@Test
public void test() {
JSONArray array = JSON.parseArray("[\"a\",\"b\",\"c\"]");
List<String> list = array.toJavaList(String.class);
assertEquals(array.get(0), list.get(0));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -801,8 +801,8 @@ public <T> List<T> toJavaList(Class<T> clazz) {
if (item instanceof Map) {
classItem = (T) objectReader.createInstance((Map) item, 0L);
} else {
if (item == null) {
list.add(null);
if (item == null || item.getClass() == clazz) {
list.add((T) item);
continue;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.alibaba.fastjson.issues_compatible;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import org.junit.jupiter.api.Test;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class Issue699 {
@Test
public void test() {
JSONArray array = JSON.parseArray("[\"a\",\"b\",\"c\"]");
List<String> list = array.toJavaList(String.class);
assertEquals(array.get(0), list.get(0));
}
}

0 comments on commit 487267a

Please # to comment.