Gson TypeToken avec type d'élément Dynamic ArrayList utilisant la réflexion
En Java, le TypeToken de Gson peut être utilisé pour représenter un type paramétré. Dans certains scénarios, il est nécessaire de spécifier dynamiquement le type des éléments ArrayList au moment de l'exécution à l'aide de la réflexion. Cela peut être réalisé comme suit :
Pour spécifier le type d'élément d'une ArrayList au moment de l'exécution, nous pouvons utiliser la méthode TypeToken#getParameterized. Cette méthode accepte un type brut et un nombre variable d'arguments de type. Dans ce cas, nous utiliserions le type brut ArrayList.class et le type déterminé dynamiquement comme argument de type.
Par exemple, l'extrait suivant montre comment créer un TypeToken avec un type d'élément ArrayList dynamique :
import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; public class Example { public static void main(String[] args) { // Dynamically determine the ArrayList item type Class<?> itemType = Class.forName("myPackage.myClass"); // Create the TypeToken with the dynamic item type Type typeOfObjectsList = TypeToken.getParameterized(ArrayList.class, itemType).getType(); // Use the TypeToken to convert a JSON string to a List of objects String json = "..."; List<?> objectsList = new Gson().fromJson(json, typeOfObjectsList); } }
Dans cet exemple, itemType est déterminé dynamiquement au moment de l'exécution et le TypeToken est créé à l'aide de getParameterized. Le TypeToken résultant peut ensuite être utilisé pour convertir une chaîne JSON en une liste d'objets avec le type d'élément spécifié.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!