Je n'arrive pas à comprendre comment transtyper correctement un objet générique dans Java en un type qui étend l'objet générique.Java Generics: type problème d'incantation (ClassCastException)
Par exemple, je dis une configuration comme ceci:
public class Parameters extends SomeCustomMap<String, String>
{
...
}
public class SomeCustomMap<K, V> implements Map<K, V>
{
public SomeCustomMap<K, V> getSubSet(...)
{
SomeCustomMap<K, V> subset;
...
return subset;
}
}
class ExampleApp
{
private void someMethod()
{
Parameters params;
Parameters paramsSubSet;
try
{
...
paramsSubSet = (Parameters) params.getSubSet(...);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Exécution de code similaire à ce qui précède jette toujours un ClassCastException, les gens dont je ne comprends pas bien. Toute assistance pour la mise en place d'un scénario similaire à celui ci-dessus serait appréciée! À savoir, comment est-ce que je pourrais renvoyer correctement l'objet SomeCustomMap renvoyé par la méthode params.getSubSet (...) à un objet Parameters?
Merci d'avance!
Pourriez-vous montrer le code plus pour 'getSubSet' (en particulier les parties qui construisent l'objet qui sera renvoyé par' sous-ensemble de retour; '), ainsi que des préséances dans la classe' Parameters' qui changent l'objet qui sera retourné par 'getSubSet')? –