java - 为什么我不能从另一个类访问这个方法?

标签 java android

我有主类扩展 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/

相关文章:

java - 如何将 "this"传递到 Action 监听器中

java - JasperReports 神秘的收获值

android - 我需要帮助在我的 mac m1 上的 android studio 中打开我的设备管理器

java - 为什么一开始启动应用程序时我的回收 View 没有显示?

android - 如何使 LocalDate 和 LocalTime 可打包?

android - 如何在 Android 上将一些 View 设置为 TextInputLayout

java - 使用警报对话框从 ListView 中删除项目

java - "Error during linking"表示用 Ocaml 编写的 Java 编译器

java - 如何将非英语单词作为文本部分添加到volley库中的多部分请求中?

android - 使用扩展的 SearchView 删除操作栏的图标/标题?