Entry<K> () { Object2IntMap.Entry<MyReference<K>> entry = tIterator.next(); return new Entry<K>() { @Override public @NotNull K getKey() { K v = SoftReference.dereference(entry.getKey()); //noinspection unchecked return v == null ? (K)GCED : v; } @Override public int getValue() { return entry.getIntValue(); } }; }