NullPointerException, даже если я поместил значение в переменную? - PullRequest
0 голосов
/ 31 октября 2011

У меня есть этот код, и он берет местоположение, где пользователь нажал на карте Google, и берет долготу и широту, и я помещаю значение в две переменные.Но это все равно дает мне NullPointerException.Почему?

И я пробовал код раньше, и он работал.

public boolean onTouchEvent(MotionEvent e, MapView mv) {
    int i = e.getAction();

    MainActivity test = new MainActivity();

    switch(i) {
        case MotionEvent.ACTION_UP:
            // When your finger stop touching the screen
            Log.d("ACTION UP", "Finger was removed from screen");

            lng = (int) e.getX();
            lat = (int) e.getY();
            test.placePinFromTouch(lat, lng); // This is the NullPointerException line
            break;
    }

Где я прокомментировал код выше, где я получаю NullPointerException, но мне интересно, почему вэто прикосновениеЕсть я получаю это.

1 Ответ

2 голосов
/ 31 октября 2011

Ваш объект test определенно не равен нулю. Однако нам нужно знать, что такое типы lng и lat. Конечно, вы приводите то, что передаете в них как int, но у java есть привычка автобоксировать данные. Это может быть случай, когда они нулевые. Если они имеют тип int, то они не являются нулевыми. Однако, если они имеют тип Integer, они могут быть.

Наконец, нам нужно знать, будет ли placePinFromTouch явно выбрасывать исключение нулевого указателя, особенно для необычных значений lat и lng. Да, это неуместно, но я видел худшие вещи, сделанные за исключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...