JavaTuples with() method

The with() method in org.javatuples is used to instantiate a tuple in a semantically elegant way, with the values given as parameters. This method can be used for any tuple class object of the javatuples library. This method is a static function in each javatuple class and it returns the tuple class object of the called class, with the values initialized by the corresponding values in the arguments.

Syntax:

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

Parameters: This method takes n values as parameters where:



  • n– represents the number of values based on the TupleClass (Unit, Pair, etc) used.
  • A a– represents the type for 1st value in A and its corresponding value in a.
  • B b– represents the type for 2nd value in B and its corresponding value in b.
  • .
    .
    and so on.

Return Value: This method returns the object of TupleClass, which calls the method, with the values passed as the parameters.

Exceptions: This method throws a RuntimeException in the following cases:

  • When the values passed do not match their expected types in TupleClass
  • When the number of values passed are lesser than expected in TupleClass
  • When the number of values passed are more than expected in TupleClass

Below programs illustrate the various ways to use with() methods:

Program 1: When the with() method is used correctly, here with Unit class:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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<String> unit = Unit.with("GeeksforGeeks");
  
        System.out.println(unit);
    }
}

chevron_right


Output:

[GeeksforGeeks]

Program 2: When the values passed do not match their expected types:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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<Integer, String, String, Double> quartet
            = Quartet.with(Double.valueOf(1),
                           "GeeksforGeeks",
                           "A computer portal",
                           Double.valueOf(20.18));
  
        System.out.println(quartet);
    }
}

chevron_right


Output:

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]

Program 3: When the number of values passed are lesser than expected:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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<Integer, String, String, Double> quartet
            = Quartet.with(Integer.valueOf(1),
                           "GeeksforGeeks",
                           "A computer portal");
  
        System.out.println(quartet);
    }
}

chevron_right


Output:

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

Program 4: When the number of values passed are more than expected:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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<Integer, String, String, Double> quartet
            = Quartet.with(Integer.valueOf(1),
                           "GeeksforGeeks",
                           "A computer portal",
                           Double.valueOf(20.18),
                           Integer.valueOf(1));
  
        System.out.println(quartet);
    }
}

chevron_right


Output:

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


Note: Similarly, it can be used with any other JavaTuple Class.



My Personal Notes arrow_drop_up

Technical Content Engineer at GeeksForGeeks

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.