Package com.alibaba.fastjson2
Class TypeReference<T>
- java.lang.Object
-
- com.alibaba.fastjson2.TypeReference<T>
-
public abstract class TypeReference<T> extends Object
Represents a generic typeT. Java doesn't yet provide a way to represent generic types, so this class does. Forces clients to create a subclass of this class which enables retrieval the type information even at runtime.This syntax cannot be used to create type literals that have wildcard parameters, such as
Class<T>orList<? extends CharSequence>.For example, to create a type literal for
List<String>, you can create an empty anonymous inner class:
For example, use it quicklyTypeReference<List<String>> typeReference = new TypeReference<List<String>>(){};String text = "{\"id\":1,\"name\":\"kraity\"}"; User user = new TypeReference<User>(){}.parseObject(text);
-
-
Constructor Summary
Constructors Constructor Description TypeReference()Constructs a new type literal.TypeReference(Type... actualTypeArguments)E.g.
-
Method Summary
-
-
-
Constructor Detail
-
TypeReference
public TypeReference()
Constructs a new type literal. Derives represented class from type parameter.Clients create an empty anonymous subclass. Doing so embeds the type parameter in the anonymous class's type hierarchy, so we can reconstitute it at runtime despite erasure.
-
TypeReference
public TypeReference(Type... actualTypeArguments)
E.g.Class<T> klass = ...; TypeReference<Response<T>> ref = new TypeReference<Response<T>>(new Type[]{klass}){};- Parameters:
actualTypeArguments- an array of Type objects representing the actual type arguments to this type- Throws:
NullPointerException- If theactualTypeArgumentsis null or empty- Since:
- 2.0.2
-
-
Method Detail
-
parseObject
public T parseObject(String text)
SeeJSON.parseObject(String, Type)for detailsString text = "{\"id\":1,\"name\":\"kraity\"}"; User user = new TypeReference<User>(){}.parseObject(text);- Parameters:
text- the JSONStringto be parsed- Since:
- 2.0.2
-
parseObject
public T parseObject(byte[] utf8Bytes)
SeeJSON.parseObject(byte[], Type)for detailsString utf8Bytes = "{\"id\":1,\"name\":\"kraity\"}".getBytes(StandardCharsets.UTF_8); User user = new TypeReference<User>(){}.parseObject(utf8Bytes);- Parameters:
utf8Bytes- UTF8 encoded JSON byte array to parse- Since:
- 2.0.3
-
parseArray
public List<T> parseArray(String text, JSONReader.Feature... features)
SeeJSON.parseArray(String, JSONReader.Feature...)for detailsString text = "[{\"id\":1,\"name\":\"kraity\"}]"; List<User> users = new TypeReference<User>(){}.parseArray(text);- Parameters:
text- the JSONStringto be parsedfeatures- features to be enabled in parsing- Since:
- 2.0.2
-
parseArray
public List<T> parseArray(byte[] utf8Bytes, JSONReader.Feature... features)
SeeJSON.parseArray(byte[], Type, JSONReader.Feature...)for detailsString utf8Bytes = "[{\"id\":1,\"name\":\"kraity\"}]".getBytes(StandardCharsets.UTF_8); List<User> users = new TypeReference<User>(){}.parseArray(utf8Bytes);- Parameters:
utf8Bytes- UTF8 encoded JSON byte array to parsefeatures- features to be enabled in parsing- Since:
- 2.0.3
-
to
public T to(JSONArray array)
SeeJSONArray.to(Type)for detailsJSONArray array = ... List<User> users = new TypeReference<ArrayList<User>>(){}.to(array);- Parameters:
array- specify theJSONArrayto convert- Since:
- 2.0.4
-
to
public T to(JSONObject object, JSONReader.Feature... features)
SeeJSONObject.to(Type, JSONReader.Feature...)for detailsJSONObject object = ... Map<String, User> users = new TypeReference<HashMap<String, User>>(){}.to(object);- Parameters:
object- specify theJSONObjectto convertfeatures- features to be enabled in parsing- Since:
- 2.0.4
-
toJavaObject
@Deprecated public T toJavaObject(JSONArray array)
Deprecated.since 2.0.4, please useto(JSONArray)SeeJSONArray.toJavaObject(Type)for details- Parameters:
array- specify theJSONArrayto convert
-
toJavaObject
@Deprecated public T toJavaObject(JSONObject object, JSONReader.Feature... features)
Deprecated.since 2.0.4, please useto(JSONObject, JSONReader.Feature...)SeeJSONObject.to(Type, JSONReader.Feature...)for details- Parameters:
object- specify theJSONObjectto convertfeatures- features to be enabled in parsing
-
get
public static TypeReference<?> get(Type type)
- Parameters:
type- specify theTypeto be converted
-
collectionType
public static Type collectionType(Class<? extends Collection> collectionClass, Class<?> elementClass)
-
mapType
public static Type mapType(Class<? extends Map> mapClass, Class<?> keyClass, Class<?> valueClass)
-
parametricType
public static Type parametricType(Class<?> parametrized, Class<?>... parameterClasses)
-
-