2

静的クラスのメソッドを呼び出すにはどうすればよいですか。
私は次のような親クラスを持っています

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "parent")
public class parent {

    @XmlElement(required = true)
    protected String methodName;
    @XmlElement(required = true)
    protected MethodCall.Params params;

    public static class member {

        @XmlElement(required = true)
        protected String name;

        public String getName() {
            return name;
        }

        public void setName(String value) {
            this.name = value;
        }
    }
}

静的クラスの (メンバー) ゲッターおよびセッター メソッドを呼び出したい。電話してみました

parent.member.setName("value")

しかし、それは機能していません。静的クラスにあるセッターとゲッターメソッドを呼び出すにはどうすればよいですか?

4

4 に答える 4

3

はインスタンス メソッドであるため、 のインスタンスが必要です。parent.membersetName

// TODO: Follow Java naming conventions for types...
parent.member x = new parent.member();
x.setName("foo");
于 2012-08-02T10:14:14.733 に答える
0

static ネストされたクラスのメソッドは static function ではないため、そのように呼び出すことはできません。そのインスタンス関数。

//Its wrong  
 parent.member.setName("value");

//right way to call
parent.member obj= new parent.member();
obj.setName("value");
于 2012-08-02T10:15:52.673 に答える
0

メソッド定義を次のように変更します。

public static String getName()
public static void setName(String value)

およびフィールド:

protected static String name;

呼び出しにコードを使用します。別の方法は、現在のクラスをインスタンス化することです (親の内部):

member tmp = new member()

その後 :

tmp.setName("value")
于 2012-08-02T10:17:01.343 に答える
0

setName()静的メソッドではありません。したがって、このメソッドを呼び出すときはいつでも、クラスのインスタンスを使用する必要があります。

parent.member mem = new parent.member();
mem.setName();
于 2012-08-02T10:17:45.377 に答える