Java 从另一个类传递方法

Java 从另一个类传递方法,java,android,Java,Android,我想把一个方法从一个类调用到另一个类,不知道如果不扩展包含该方法的类,这是否可行。我已经尝试导入该包,这样我认为应该允许使用该方法,因为它是一个公共方法,但没有成功 我试着用它作为参考,但我不明白(因为它是一个android应用程序…) 举例说明的伪代码 class 1 class 2 class 2: import package.class 1; class 1.this.method(); -> Error: No enclosing instance of the typ

我想把一个方法从一个类调用到另一个类,不知道如果不扩展包含该方法的类,这是否可行。我已经尝试导入该包,这样我认为应该允许使用该方法,因为它是一个公共方法,但没有成功

我试着用它作为参考,但我不明白(因为它是一个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

另一种方法可能是,为其他类创建对象,然后调用该对象上的方法。像下面这样

new ClassA().yourMethod();

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

您可以使用两种主要方法:

  • Class2扩展了Class1
    ,然后可以调用类1的所有
    protected
    public
    方法
  • 在class2内获取class1的实例:

    Class1 c1 = new Class1();
    c1.someMethod();
    

  • 如果要在不创建类实例的情况下调用该方法,请将其设置为静态:

    Class1
    {
    ...
        public static void method1() {doSomething;}
    }
    
    Class2
    {
        public class2()
        {
            Class1.method1(); //should be fine
        }
    }
    
    编辑:如果您希望在
    活动之间传递数据,则会略有不同。通常,您可以执行类似于
    startActivityForResult()
    的操作,然后检索返回值,或者像这样使用
    Intents


    您引用的链接详细介绍了在活动之间传递数据的过程,您是要传递数据还是访问方法?为什么需要ClassA().yourMethod();而不是新的ClassA.yourMethod()?正如您所说,它工作正常,但我尝试的第二种方法是classA.yourMethod不能作为类型解析。如果您访问实例方法(指非静态的方法),它应该通过类的实例进行解析。因此,new ClassA()是ClassA的实例。另一个语法ClassA()不是有效语法。Java不知道如何处理语句,所以它只是抛出编译时错误。无法做到这一点,因为我使用的构造函数不能是静态的,但无论如何,谢谢你,哈哈,我会尝试另一个time@VictorOliveira如果您试图在活动之间传递数据,那么您应该真正阅读我的链接。但很难说你在做什么。这不是关于数据,不是现在,而是谢谢你的建议,当我发现这个问题时,我会记住你说的话