Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как интерпретировать этот код?


Автор: Evgenic 22.11.2010, 16:07
что-то в голове не укладывается вот такое: 
Код

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


Автор: Skipy 22.11.2010, 17:52
Согласно Вашим объявлениям вместо IndexAnnotation.class должен стоять Integer.class.

А зачем это нужно - спросите у того, кто придумывал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)