如何在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);
});
有可能吗?
答案 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