diff options
Diffstat (limited to 'src/net/java/sip/communicator/impl/protocol/icq/InfoRetreiver.java')
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/icq/InfoRetreiver.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/icq/InfoRetreiver.java b/src/net/java/sip/communicator/impl/protocol/icq/InfoRetreiver.java index 8e25d29..f4da152 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/InfoRetreiver.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/InfoRetreiver.java @@ -66,16 +66,21 @@ public class InfoRetreiver * @param detailClass Class * @return Iterator */ - public Iterator<GenericDetail> getDetailsAndDescendants( + public <T extends GenericDetail> Iterator<T> getDetailsAndDescendants( String uin, - Class<? extends GenericDetail> detailClass) + Class<T> detailClass) { List<GenericDetail> details = getContactDetails(uin); - List<GenericDetail> result = new LinkedList<GenericDetail>(); + List<T> result = new LinkedList<T>(); for (GenericDetail item : details) if (detailClass.isInstance(item)) - result.add(item); + { + @SuppressWarnings("unchecked") + T t = (T) item; + + result.add(t); + } return result.iterator(); } |