2011-10-19 5 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の値を呼び出します。代入演算子を使用する必要があります(例:引数がnullであれば、私は信じていtoPixels

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

は、引数によって呼ば既存のオブジェクトの内容を変更...しかし、それは可能性を参照するための変数の値を変更することはできません新しいオブジェクト。