我有主类扩展 MapActivity,像这样:
public class main extends MapActivity {
private MapView mapView;
......//something
public MapView getmapView() {
return mapView;
}
........//something
}
为什么我不能像这样访问另一个类中的 getmapView() 方法
MapView mv=main.getMapview()
最佳答案
您将访问静态方法的语法与访问实例(即非静态)方法的语法混淆了。
您希望您的 main
类的每个实例都有自己的 MapView
对象,还是希望所有的 main
对象都共享单个 MapView
?
如果您希望 main
类的每个实例都有自己的 MapView
实例,那么您需要调用 getmapView()
main
类实例上的方法,而不是类本身的名称:
main myObject = new main();
MapView mv=myObject.getmapView();
如果您希望所有 main
对象共享一个 MapView
,那么您的 getmapView()
方法和 mapView
成员本身需要声明为 static
...
public class main extends MapActivity {
private static MapView mapView;
......//something
public static MapView getmapView() {
return mapView;
}
......//something
}
...然后您可以使用您已经发布的代码行调用静态getmapView()
方法:
MapView mv=main.getMapview();
进一步阅读:看看this article在 Java 教程中进一步解释。
关于java - 为什么我不能从另一个类访问这个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6171031/