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 では、それを行う主な方法が 2 つあります。

  1. Class2 extends Class1その後、クラス 1 のすべてprotectedまたはメソッドを呼び出すことができます。public
  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 に答える