gpt4 book ai didi

java - 在 Java 中尝试从另一个类访问变量时获取 null

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:42 25 4
gpt4 key购买 nike

我有两个类,我想将触摸时的(地理点)变量从一个类传递到另一个类,这样我就可以计算用户当前位置与地理点之间的距离。

长话短说:

我的第一个类名为 Session,第二个类名为 Calculation - 它们在同一个包中。

我在主类中将变量声明为公共(public)变量。在触摸时,我将用户当前位置保存到名为 userposition 的(公共(public))地理点变量中。

然后在第二节课我用

Session pass = new Session();

创建 session 实例。之后我尝试检索 userposition 变量:

Geopoint position = pass.userposition;

但它一直返回 null 并抛出异常,即使我在主类上测试了变量并且工作得很好......我在这里错过了什么??

Session的主要代码是:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maps);
// Blah blah blah

// And here i declare the GestureDetector...I working with google maps.
Gest = new GestureDetector(new SimpleOnGestureListener());

mapView.getOverlays().add(new Overlay() {
@Override
public boolean onTouchEvent(MotionEvent e, MapView mapView) {
Gest.onTouchEvent(e);
return super.onTouchEvent(e, mapView);
}
});

Gest.setOnDoubleTapListener(new OnDoubleTapListener() {

@Override
public boolean onDoubleTap(MotionEvent e) {
// and in here i set the variable which works fine i tested it
// in a textView
userposition = myLocationOverlay.getMyLocation();
}
});
}

对于我的计算类:

public Overlays(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}

public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}

@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return mOverlays.get(i);
}

@Override
public int size() {
// TODO Auto-generated method stub
return mOverlays.size();
}

@Override
public boolean onTap(int index) {
// and here i try to get the variable by taping a marker on map (its a
// lot of code no need to post works fine too)

Session pass = new Session();
Geopoint position = pass.userposition;
}

然后我得到空指针异常。

我注意到(我不太擅长 Java,所以我会尝试解释)是我可以从主类 Session 传递一个像整数一样的变量(我试过了)。问题是要传递地理点,我需要将变量传递到 session 中的手势检测 onDoubleTap 方法中......类似于 pass.onDoubleTap.userposition 因为那是我需要的变量,并且在那个类中变量不为空。但是我该怎么做呢??

最佳答案

我通过声明变量 static 解决了这个问题,这样它就可以在包中的所有类之间共享。

关于java - 在 Java 中尝试从另一个类访问变量时获取 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com