在java中使用class作为方法

时间:2015-10-01 09:41:21

标签: java

如何在Java中使用(如果可能)类作为方法参数?

public class validators() {
    public int minLength(int l) {
        // do something
    } 
}

public class formField() {
    public void addField(String field, validators val) {
        //do something
    }
}

我希望能够做到以下几点:

addField("username", new validators() { 
     minLength(6);
});

有可能吗?

3 个答案:

答案 0 :(得分:0)

如果要传递当前实例,可以使用this

答案 1 :(得分:0)

虽然我不确定你想要实现什么,但下面的代码编译正常:

public class Validators {
    public int minLength(int l) {
        // do something
        return 0;
    }
}

public class FormField {
    public void addField(String field, Validators val) {
        //do something
    }
}

然后我们可以将其用作:

    public static void main(String[] args) {
        FormField ff = new FormField();
        ff.addField("username", new Validators() {
           int result = minLength(6);
        });
    }

它正在使用匿名派生类。

答案 2 :(得分:0)

如果要将类实例作为参数传递并定义它将使用的某个值,则必须将此变量作为类的属性并通过构造函数设置它,如:

public class Validators {
    int l;

    public Validators(int l) {
        this.l = l;
    }

    public int minLength() {
        // do something
        //here you can use l variable
    }
 }

public class FormField {
    public void addField(String field, Validators val) {
        //do something
    }
}

然后你可以这样称呼它:

addField("username", new Validators(6)) {
...

您可能需要查看Java naming conventions