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