Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的委托与.NET中的委托类似_Java_Generic Programming - Fatal编程技术网

Java中的委托与.NET中的委托类似

Java中的委托与.NET中的委托类似,java,generic-programming,Java,Generic Programming,我需要一些关于Java方法的建议,因为代理与.NET有点不同。我想创建一些具有相同名称和相同方法名称的接口,但它们唯一不同的是参数的数量。类似于.NET的东西 一些代码示例 现在起作用的是这样实现的抽象类 public abstract class AbstractValidators { public <T1> boolean isValid(T1 t1) { return false; } public <T1,T2> boolean

我需要一些关于Java方法的建议,因为代理与.NET有点不同。我想创建一些具有相同名称和相同方法名称的接口,但它们唯一不同的是参数的数量。类似于.NET的东西

一些代码示例

现在起作用的是这样实现的抽象类

public abstract class AbstractValidators {

   public <T1> boolean isValid(T1 t1) {
      return false;
   }

   public <T1,T2> boolean isValid(T1 t1, T2 t2) {
      return false;
   }

  //And so one

} 
public class SomeClass {

 AbstractValidators validateStrVsInter = new AbstractValidators() {

   public <String,Integer> boolean isValid(String t1, Integer t2) { //Don't be fool by colors the String and Integer are only names of generic parameters
         return true;
   }

 };


 public void doStaff() {

   this.validateStrVsInter.<String,Integer>isValid("String", 100); // return true;

 }

}
进入

在祈祷中

   validator.isValid("1",2);


无需更改类导入等。

您知道,您可以创建一个接口来实现多个其他接口,这些接口基本上连接在一起。

在接口的实现中使用packagename

public class interfaces implements package.a.IValidator, package.b.IValidator

对但是我不得不实现每一种方法,而不是具体的一种。我想选择一个实现并对其执行操作,然后像在Swing中一样,为每个方法创建一个带有空实现的适配器。然后,您只需覆盖所需的。
isValid(String t1, Integer t2, Double t3) { }
   validator.isValid("1",2);
  validator.isValid("1",2, 3.0);
public class interfaces implements package.a.IValidator, package.b.IValidator