Coś nie tak z instancjami kontroli tutaj?

Wraz z wprowadzeniem leków generycznych, niechętnie wykonuję instancję lub casting, na ile to możliwe. Ale w tym scenariuszu nie widzę sposobu na to:

for (CacheableObject<ICacheable> cacheableObject : cacheableObjects) {
    ICacheable iCacheable = cacheableObject.getObject();
    if (iCacheable instanceof MyObject) {
        MyObject myObject = (MyObject) iCacheable;
        myObjects.put(myObject.getKey(), myObject);
    } else if (iCacheable instanceof OtherObject) {
        OtherObject otherObject = (OtherObject) iCacheable;
        otherObjects.put(otherObject.getKey(), otherObject);
    }
}

W powyższym kodzie wiem, że moje obiekty ICacheable powinny być tylko instancjami MyObject lub OtherObject i zależnie od tego chcę je umieścić w 2 oddzielnych mapach, a następnie wykonać dalsze przetwarzanie w dół.

Byłbym zainteresowany, jeśli jest inny sposób, aby to zrobić bez sprawdzenia mojej instancji.

Dzięki

questionAnswers(3)

yourAnswerToTheQuestion