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