Я понимаю получение и помещаю принцип для наборов: если метод берет в наборе, в который он запишет тип T, параметр должен быть Collection super T>
, тогда как, если это считает тип T из, параметр должен быть Collection extends T>
.
Но мог кто-то объяснять Collections.max()
подпись:
public static T max(Collection extends T> coll,
Comparator super T> comp)
В особенности, почему это Comparator super T>
вместо Comparator extends T>
?
Здесь может пригодиться мнемоника PECS Джоша Блоха. Это означает:
Producer extends
, Consumer super
Это означает, что когда параметризованный тип, передаваемый методу, создает экземпляров T
(они будут извлечены из него каким-то образом), ? extends T
следует использовать, поскольку любой экземпляр подкласса T
также является T
.
Когда параметризованный тип, передаваемый методу, потребляет экземпляров T
(они будут переданы ему, чтобы что-то сделать), ? super T
следует использовать, потому что экземпляр T
может быть законно передан любому методу, который принимает некоторый супертип T
. Например, Comparator
может использоваться в Collection
. ? extends T
не будет работать, потому что Comparator
не может работать с Collection
.
Изменить: Чтобы уточнить немного больше о получении / размещении (производстве / потреблении):
public T something();
^
Выше приведен метод, который производит T
.
public void something(T t);
^
Вышеупомянутый метод потребляет T
.
«Производитель расширяет
, Потребитель super
]» применяется к тому, как метод, которому передается параметризованный объект, будет использовать этот объект. В случае Collections.max ()
элементы будут извлечены из Collection
, так что это производитель.Эти элементы будут переданы в качестве аргументов методу на Comparator
, так что он будет потребителем.
No.
Добавьте в таблицу (таблицы) столбец, модифицированный с помощью lastmodified, и обновите его при изменении этой строки.
-121--4144469-Как это работает?
Когда вы заходите на веб-сайт Firefox с информацией о местоположении, браузер спросит вас, хотите ли вы поделиться своим местоположением.
Если вы согласны, Firefox собирает информацию о ближайших точках беспроводного доступа и IP-адресе вашего компьютера и получит оценку вашего местоположения, отправив эту информацию в Google Location Services (служба геолокации по умолчанию в Firefox). Эта оценка местоположения затем передается запрашивающему веб-сайту. ( Источник )
Насколько точны местоположения?
Точность сильно варьируется в зависимости от местоположения. В некоторых местах поставщики геолокационных услуг могут предоставить местоположение в пределах нескольких метров. Однако в других областях это может быть гораздо больше. Все места расположения должны рассматриваться в качестве оценочных, поскольку нет никаких гарантий точности предоставленных мест. ( Источник )
В моем случае Firefox сообщает, что я на расстоянии около 10 км от моего реального местоположения.
Как использовать эту функцию на моем веб-сайте?
Вы бы сделали что-то подобное:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
alert(position.coords.latitude + ", " + position.coords.longitude);
// Use the latitude and location as you wish. You may set a marker
// on Google Maps, for example.
});
}
else {
alert("Geolocation services are not supported by your browser.");
}
Вы можете увидеть онлайн-демонстрацию здесь: Firefox HTML 5 Geolocation Demo (Требуется браузер с поддержкой геолокации, такой как Firefox 3.1b3)
-121--1386062-Компаратор потребляет пару Ts и производит int. Коллекция производит Ts, которые потребляет компаратор.
Супер потребляет, расширяет производство.
В отношении принципа get and put, get products and put потребляет.
Компаратор должен иметь возможность принимать T
в качестве аргумента.