我想调用从一个类到另一个类的方法,如果不扩展包含该方法的类,则不知道是否可能。我试图导入包,这样我认为该方法应该允许使用,因为它是一个公共方法,但这不是太多了..
尝试使用此link作为参考,但我不理解它(因为它是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
答案 0 :(得分:2)
其他方式可能是,为其他类创建对象,然后在该对象上调用该方法。像下面的东西。
new ClassA().yourMethod();
答案 1 :(得分:0)
您需要来自类1的对象实例来调用该方法,或者如果它不需要实例 - 您可以将其声明为静态,然后您可以编写1.method()。
答案 2 :(得分:0)
在java中你有两种主要方法:
Class2 extends Class1
然后您可以调用第1类的所有protected
或public
方法。在class2中获取class1的实例:
Class1 c1 = new Class1();
c1.someMethod();
答案 3 :(得分:0)
如果要在不创建类实例的情况下调用该方法,请将其设为static
:
Class1
{
...
public static void method1() {doSomething;}
}
Class2
{
public class2()
{
Class1.method1(); //should be fine
}
}
编辑:如果您想在稍微不同的Activities
之间传递数据。通常,您执行类似startActivityForResult()
的操作,然后检索返回值,或使用Intents
,如下所示:
How do I pass data between Activities in Android application?