Найдите свое местоположение с Листочкой [дубликат]

Java кэширует целые объекты в диапазоне -128 to 127. Поэтому, когда вы пытаетесь присвоить значение в этом диапазоне объекту wrapper, операция boxing вызовет метод Integer.valueOf и, в свою очередь, назначит ссылку на объект, уже находящийся в пуле.

С другой стороны, если вы присвоите значение вне этого диапазона ссылочному типу wrapper, Integer.valueOf создаст для этого значения новый объект Integer. И, следовательно, сравнение reference для объектов Integer, имеющих значение вне этого диапазона, даст вам false

Итак,

Integer i = 127;  --> // Equivalent to `Integer.valueOf(127)`
Integer i2 = 127;

// Equivalent to `Integer.valueOf(128)`
// returns `new Integer(128)` for value outside the `Range - [-128, 127]`
Integer i3 = 128; 
Integer i4 = 128;

System.out.println(i == i2); // true, reference pointing to same literal
System.out.println(i3 == i4); // false, reference pointing to different objects

Но, когда вы создаете свое целое число экземпляры с использованием оператора new, новый объект будет создан в куче. Итак,

Integer i = new Integer(127);
Integer i2 = new Integer(127);

System.out.println(i == i2); // false
8
задан fillibuster 12 May 2012 в 18:44
поделиться

2 ответа

У вас есть проблема с областью действия вашей переменной. Я разместил пример, который исправляет ваш код здесь: http://jsfiddle.net/XwbsU/3/

Вы должны получить всплывающее окно геолокации браузера, когда вы нажмете «Найти меня ! '.

Надеюсь, это поможет вам.

8
ответ дан ScottB 18 August 2018 в 18:00
поделиться

Вот быстрый взлом. Я рекомендую этот плагин https://github.com/domoritz/leaflet-locatecontrol

var loadMap = function (id) {
    var HELSINKI = [60.1708, 24.9375];
    var map = L.map(id);
    var tile_url = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
    var layer = L.tileLayer(tile_url, {
        attribution: 'OSM'
    });
    map.addLayer(layer);
    map.setView(HELSINKI, 19);

    map.locate({setView: true, watch: true}) /* This will return map so you can do chaining */
        .on('locationfound', function(e){
            var marker = L.marker([e.latitude, e.longitude]).bindPopup('Your are here :)');
            var circle = L.circle([e.latitude, e.longitude], e.accuracy/2, {
                weight: 1,
                color: 'blue',
                fillColor: '#cacaca',
                fillOpacity: 0.2
            });
            map.addLayer(marker);
            map.addLayer(circle);
        })
       .on('locationerror', function(e){
            console.log(e);
            alert("Location access denied.");
        });
};

loadMap('map');
9
ответ дан Abel Terefe 18 August 2018 в 18:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: