что-то в голове не укладывается вот такое:
| Код | public interface TypesafeMap<BASE> { public interface Key<BASE,VALUE> { } public <VALUE, KEY extends Key<BASE,VALUE>> VALUE get(Class<KEY> key);
...
}
|
Как с этим работать и для чего это нужно? Причем NetBeans подсвечивает вот такой вызов в качестве ошибки:
| Код | int dep1idx = dep1lab.get(IndexAnnotation.class);// <- incompatible types //dep1lab - объект реализующий вот такой интерфейс: // public interface CoreMap extends TypesafeMap<CoreMap> { }
|
Но все компилируется при этом.
Вот сопутствующие объявления
| Код | public class CoreAnnotations {
private CoreAnnotations() {} // only static members ... public static class IndexAnnotation implements CoreAnnotation<Integer> { public Class<Integer> getType() { return Integer.class; } } ... // тут еще с полсотни таких же public static class ХХХAnnotation... }
|
| Код | public interface CoreAnnotation<V> extends TypesafeMap.Key<CoreMap, V> {
public Class<V> getType(); }
|
|