Хотя предполагается, что <?>
является ярлыком для <? extend object>
, между ними существует небольшое различие. <?>
воспроизводится, а <? extend object>
- нет. Причина, по которой они сделали это, - это упростить распознавание повторяющегося типа. Все, что выглядит как <? extends something>
, <T>
, <Integer>
, недопустимо.
Например, этот код будет работать
List aList = new ArrayList<>();
boolean instanceTest = aList instanceof List<?>;
, но это дает ошибку
List aList = new ArrayList<>();
boolean instancetest = aList instanceof List<? extends Object>;
для получения дополнительной информации о Java-дженериках и коллекциях от Maurice Naftalin
Пожалуйста, попробуйте:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: -24.345, lng: 134.46} // Australia.
});
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer({
draggable: true,
map: map,
});
displayRoute('Perth, WA', 'Sydney, NSW', directionsService,
directionsDisplay);
}
function displayRoute(origin, destination, service, display) {
service.route({
origin: origin,
destination: destination,
travelMode: 'DRIVING',
avoidTolls: true
}, function(response, status) {
if (status === 'OK') {
display.setDirections(response);
} else {
alert('Could not display directions due to: ' + status);
}
});
}