在java中使用类作为方法
在Java中如何使用(如果可能)类作为方法参数在java中使用类作为方法,java,Java,在Java中如何使用(如果可能)类作为方法参数 public class validators() { public int minLength(int l) { // do something } } public class formField() { public void addField(String field, validators val) { //do something } } 我希望能够做到以下几点: a
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);
});
有可能吗?如果要传递当前实例,可以使用
此
尽管我不确定您想要实现什么,但以下代码将很好地编译:
public class Validators {
public int minLength(int l) {
// do something
return 0;
}
}
及
然后我们可以将其用作:
public static void main(String[] args) {
FormField ff = new FormField();
ff.addField("username", new Validators() {
int result = minLength(6);
});
}
它使用的是匿名派生类。如果要将类实例作为参数传递并定义它将使用的值,则必须将此变量作为类的属性,并通过构造函数进行设置,如:
public class Validators {
int l;
public Validators(int l) {
this.l = l;
}
public int minLength() {
// do something
//here you can use l variable
}
}
及
然后你可以这样称呼它:
addField("username", new Validators(6)) {
...
如果您是从同一个java文件调用它,您可能需要查看一下,这不应该是一个问题,因为您已经声明您的方法是公共的。另外,请正确地格式化和解释一些东西,比如从哪里调用这些东西。我们不能在Java中使用
validators()
作为类名。您的示例代码离可编译还很远,我甚至不确定您真正想做什么。在同一个源文件中不能有两个公共类。正如@akhil_mittal所提到的,名称validators()
和formField()
不是有效的类名。类名也应该以大写字母开头:这是一个非常基本的编码约定。
public class FormField {
public void addField(String field, Validators val) {
//do something
}
}
addField("username", new Validators(6)) {
...