调用静态类方法

时间:2012-08-02 10:12:16

标签: java

如何调用静态类'方法 我有像

这样的父类
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;
        }
    }
}

我想调用静态类'(成员)getter和setters方法。 我试着打电话给

parent.member.setName("value")

但它不起作用。如何调用静态类中的setter和getters方法?

4 个答案:

答案 0 :(得分:3)

您需要parent.member实例,因为setName是一个实例方法:

// TODO: Follow Java naming conventions for types...
parent.member x = new parent.member();
x.setName("foo");

答案 1 :(得分:0)

你不能这样调用它,因为静态嵌套类中的方法不是静态函数。它的实例函数。

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

//right way to call
parent.member obj= new parent.member();
obj.setName("value");

答案 2 :(得分:0)

将方法定义更改为:

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

和字段:

protected static String name;

使用您的代码进行调用。另一种方法是即时更新当前类(父母内部):

member tmp = new member()

然后:

tmp.setName("value")

答案 3 :(得分:0)

setName()不是静态方法。 因此,无论何时想要调用此方法,都必须使用类的实例。

parent.member mem = new parent.member();
mem.setName();