Projection.toPixels Нулевой указатель ... помогите? - PullRequest
0 голосов
/ 19 октября 2011

У меня есть следующий код:

if(prevPoint != null){
            Log.i("tracking class", "prevPoint:  "+ prevPoint);
          Point pointb = null;
          Projection projection2 = mapView.getProjection();
          projection2.toPixels(prevPoint, pointb);

          Log.i("tracking class", "Pointb:  "+ pointb);
               Paint paint;
                 paint = new Paint();
                 paint.setColor(Color.BLUE);
                 paint.setAntiAlias(true);
                 paint.setStyle(Style.STROKE);
                 paint.setStrokeWidth(2);
    Log.i("tracking class", "Point x:  "+ point.x);
    Log.i("tracking class", "Point y:  "+ point.y);
    Log.i("tracking class", "Pointb x:  "+ pointb.x);
    Log.i("tracking class", "Pointb y:  "+ pointb.y);


            //canvas.drawLine(pointb.x, pointb.y, point.x, point.y, paint);
        }

Журнал возвращает это:

10-19 08:55:25.505: INFO/tracking class(29970): prevPoint:  41310173,-105558377
10-19 08:55:25.505: INFO/tracking class(29970): Pointb:  null

Есть мысли, почему Pointb возвращается в ноль?

1 Ответ

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

Ожидаете ли вы, что Java будет использовать передачу по ссылке?Это не так.Он использует передачу по значению везде, хотя значением любого выражения ссылочного типа является ссылка.

Вызов

projection2.toPixels(prevPoint, pointb);

не может возможно изменить значение pointb.Вам нужно будет использовать оператор присваивания, например

Point pointb = projection2.toPixels(prevPoint, null);

Я думаю, toPixels изменяет содержимое существующего объекта , на который ссылается аргументом, если аргумент не являетсяnull ... но он не может изменить значение переменной для ссылки на новый объект.

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