Что-то не так с проверками здесь?

С введением дженериков я неохотно выполняю экземпляр или кастинг как можно больше. Но я не вижу способа обойти это в этом сценарии:

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);
    }
}

В приведенном выше коде я знаю, что мои ICacheables должны когда-либо быть только экземплярами MyObject или OtherObject, и в зависимости от этого я хочу поместить их в 2 отдельные карты, а затем выполнить некоторую обработку ниже.

Мне было бы интересно, есть ли другой способ сделать это без проверки моего экземпляра.

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос