📜  JavaTuples with() 方法

📅  最后修改于: 2022-05-13 01:54:59.516000             🧑  作者: Mango

JavaTuples with() 方法

org.javatuples 中的with()方法用于以语义优雅的方式实例化一个元组,其值作为参数给出。此方法可用于 javatuples 库的任何元组类对象。该方法是每个 javatuple 类中的静态函数,它返回被调用类的元组类对象,其值由参数中的相应值初始化。

句法:

public static  TupleClass with(A a, B b, ..)

参数:此方法将n 个值作为参数,其中:

  • n – 表示基于所使用的TupleClass (Unit、Pair 等)的值的数量。
  • A a - 表示 A 中第一个值的类型及其在 a 中的对应值。
  • B b – 表示 B 中第二个值的类型及其在 b 中的对应值。

    .
    .
    等等。

返回值:该方法返回调用该方法的TupleClass的对象,并将值作为参数传递。

异常:此方法在以下情况下会引发RuntimeException

  • 当传递的值与 TupleClass 中的预期类型不匹配
  • 当 TupleClass 中传递的值的数量少于预期
  • 当 TupleClass 中传递的值的数量超过预期

下面的程序说明了使用 with() 方法的各种方法:

方案一:当 with() 方法正确使用时,这里有 Unit 类:

// Below is a Java program to create
// a Unit tuple from with() method
  
import java.util.*;
import org.javatuples.Unit;
  
class GfG {
    public static void main(String[] args)
    {
        // Using with() method to instantiate unit object
        Unit unit = Unit.with("GeeksforGeeks");
  
        System.out.println(unit);
    }
}

输出:

[GeeksforGeeks]

程序 2:当传递的值与其预期类型不匹配时:

// Below is a Java program to create
// a Unit tuple from with() method
  
import java.util.*;
import org.javatuples.Quartet;
  
class GfG {
    public static void main(String[] args)
    {
        // Using with() method to instantiate unit object
        Quartet quartet
            = Quartet.with(Double.valueOf(1),
                           "GeeksforGeeks",
                           "A computer portal",
                           Double.valueOf(20.18));
  
        System.out.println(quartet);
    }
}

输出:

Exception in thread "main" java.lang.RuntimeException: 
Uncompilable source code - incompatible types: inference variable A has incompatible bounds
    equality constraints: java.lang.Integer
    lower bounds: java.lang.Double
    at MainClass.GfG.main]

程序 3:当传递的值的数量少于预期时:

// Below is a Java program to create
// a Unit tuple from with() method
  
import java.util.*;
import org.javatuples.Quartet;
  
class GfG {
    public static void main(String[] args)
    {
        // Using with() method to instantiate unit object
        Quartet quartet
            = Quartet.with(Integer.valueOf(1),
                           "GeeksforGeeks",
                           "A computer portal");
  
        System.out.println(quartet);
    }
}

输出:

Exception in thread "main" java.lang.RuntimeException: 
Uncompilable source code - Erroneous sym type: org.javatuples.Quartet.with
    at MainClass.GfG.main

程序 4:当传递的值的数量超过预期时:

// Below is a Java program to create
// a Unit tuple from with() method
  
import java.util.*;
import org.javatuples.Quartet;
  
class GfG {
    public static void main(String[] args)
    {
        // Using with() method to instantiate unit object
        Quartet quartet
            = Quartet.with(Integer.valueOf(1),
                           "GeeksforGeeks",
                           "A computer portal",
                           Double.valueOf(20.18),
                           Integer.valueOf(1));
  
        System.out.println(quartet);
    }
}

输出:

Exception in thread "main" java.lang.RuntimeException: 
Uncompilable source code - Erroneous sym type: org.javatuples.Quartet.with
    at MainClass.GfG.main

注意:类似地,它可以与任何其他 JavaTuple 类一起使用。