1

我想从一个类调用一个方法到另一个类,不知道是否可以不扩展包含该方法的类。我试图导入包,这样我认为应该允许使用该方法,因为它是一个公共方法,但这并不成功。

尝试使用此链接作为参考,但我不明白(因为是android的应用程序..)

一个伪代码来举例说明

class 1
class 2

class 2:

import package.class 1;


class 1.this.method();  -> Error: No enclosing instance of the type class 1 in is acessible in scope
4

4 回答 4

2

其他方式可能是,为其他类创建对象,然后调用该对象上的方法。像下面的东西。

new ClassA().yourMethod();
于 2012-08-06T14:46:51.353 回答
0

您需要类 1 中的对象实例来调用该方法,或者如果它不需要实例 - 您可以将其声明为静态,然后您可以编写 1.method()。

于 2012-08-06T14:48:20.597 回答
0

在java中你有两种主要的方法来做到这一点:

  1. Class2 extends Class1然后你可以调用类 1 的所有protectedpublic方法。
  2. 在 class2 中获取 class1 的实例:

    Class1 c1 = new Class1();
    c1.someMethod();
    
于 2012-08-06T14:50:33.653 回答
0

如果您想在不创建类实例的情况下调用该方法,请执行以下操作static

Class1
{
...
    public static void method1() {doSomething;}
}

Class2
{
    public class2()
    {
        Class1.method1(); //should be fine
    }
}

编辑:如果你想在这之间传递数据Activities略有不同。通常你会做类似startActivityForResult()的事情然后检索返回值,或者Intents像这样使用:

如何在 Android 应用程序的活动之间传递数据?

于 2012-08-06T14:50:56.237 回答