Javaのジェネリックオブジェクトをジェネリックオブジェクトを拡張する型に適切にキャストする方法を理解するのに問題があります。
たとえば、次のような設定があるとします。
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();
}
}
}
上記のようなコードを実行すると、一貫してClassCastExceptionがスローされますが、そのようなものは完全には理解していません。上記のようなシナリオを正しく設定する方法についてのアドバイスをいただければ幸いです。つまり、params.getSubSet(...)メソッドから返されるSomeCustomMapオブジェクトをParametersオブジェクトに適切にキャストするにはどうすればよいでしょうか。
前もって感謝します!