2011-10-19 28 views
0

我有以下代码:Projection.toPixels空指针...帮助?

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是回来了空?

回答

2

您是否期待Java使用传递引用?它没有。它在任何地方都使用值传递,尽管参考类型的任何表达式的值都是的参考。

调用

projection2.toPixels(prevPoint, pointb); 

不能可能变化pointb值。您需要使用赋值运算符,例如

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

我相信toPixels改变由参数引用现有对象的内容,如果该参数不为null ...但它不可能改变的变量来引用的价值一个新的对象。