Package Torello.Java.Additional
Class Tuple4<A,B,C,D>
- java.lang.Object
-
- Torello.Java.Additional.MultiType
-
- Torello.Java.Additional.TupleN
-
- Torello.Java.Additional.Tuple4<A,B,C,D>
-
- Type Parameters:
A- The type of the first member-field ('a').B- The type of the second member-field ('b').C- The type of the third member-field ('c').D- The type of the last member-field ('d').
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable
public class Tuple4<A,B,C,D> extends TupleN implements java.io.Serializable, java.lang.Cloneable
This simple generic-class allows for storing four objects with a single reference.Modifiable, Read-Write: Classes which inherit Ancestor-ClassTupleNwill always contains fields which have been declared without the use of the'final'modifier. These classes are, therefore, "Mutable Tuples" - meaning their contents may be changed whenever necessary.Remember: The classesRet4andTuple4completely identical, with the sole difference being thatRet4fields are all declared'final', but theTuple4fields are not!- See Also:
- Serialized Form
Hi-Lited Source-Code:- View Here: Torello/Java/Additional/Tuple4.java
- Open New Browser-Tab: Torello/Java/Additional/Tuple4.java
File Size: 2,666 Bytes Line Count: 87 '\n' Characters Found
-
-
Method Summary
Retrieve the Number of Fields in this Class Modifier and Type Method intn()Retrieve a Field by Field-Number Modifier and Type Method Objectget(int i)Convert this instance to an Immutable RetN instance, of the same size Modifier and Type Method Ret4<A,B,C,D>toImmutable()Methods: interface java.lang.Cloneable Modifier and Type Method Tuple4<A,B,C,D>clone()
-
-
-
Field Detail
-
serialVersionUID
protected static final long serialVersionUID
This fulfils the SerialVersion UID requirement for all classes that implement Java'sinterface java.io.Serializable. Using theSerializableImplementation offered by java is very easy, and can make saving program state when debugging a lot easier. It can also be used in place of more complicated systems like "hibernate" to store data as well.- See Also:
- Constant Field Values
- Code:
- Exact Field Declaration Expression:
protected static final long serialVersionUID = 1;
-
a
-
b
-
c
-
d
-
-
Constructor Detail
-
Tuple4
-
Tuple4
public Tuple4()
Constructs this object. Initializes all fields to null.
-
-
Method Detail
-
n
-
clone
-
get
public java.lang.Object get(int i)
This method will retreive theithfield of this instance. This can be useful when you wish to use the Ancestor / Parent classses:TupleNorMultiTypefor handling'this'instance.
As a reminder, the fields inside this class have all been declaredpublic! Referencing this instance' fields, directly, will always work in place of calling any of theget(...)methods.
Type Casting:
This method can make for easier typing. When using either of the super-classes of this class - namelyTupleNorMultiType- you simply do not have to type (into your computer's keyboard) all of the FieldGeneric Types(the stuff between the'<'and'>'less-than & greater-than symbols).
However, anytime one of these ancestor classes are used instead of the actualTuple4instance, you will have to use one of the provided'get'methods to retrieve a field inside theTuple4instance. This is because the parent-ancestor classes do not actually have any fields to retrieve.
There are three'get'methods provided in Root-Ancestor ClassMultiType. Each of these three 'getters' allows for casting (this) sub-class' returned fields in a slightly different way. When you aren't referencing the actual instance, itself, but rather one of the two Parent-Tuple Classes, you must use one of their getters, and you will have to cast the fields that you wish to use, eventually!
Example:
// *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // No Cast Necessary // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // This line makes for longer typing, but DOES NOT REQUIRE A CAST TO RETRIEVE FIELDS. // Here the example Multi-Type Identifier is used: Tuple4. Tuple4<String, Integer, Date, File> ref4 = some_function_returns_4(); String neededStrField = ref4.a; // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // Less Keyboard-Typing (Less Eyesores), but Requires a Cast // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // If the Tuple4 super-class TupleN is used to reference this class data, // YOU WILL NEED TO CAST THE FIELDS BEFORE YOU CAN THEM, AS IN THE EXAMPLES BELOW: TupleN refN = some_function_returns4(); // Version #1: (this method) - simple 'get' @SuppressWarnings("unchecked") String neededStrField = (String) refN.get(1); // Version #1: The second Method-Parameter is a 'Class<T>' Type-Parameter // Note, again, that passing a '1' to the first parameter retrieves Tuple4.a String neededStrField = refN.get(1, String.class); // Version #3: "GET" (in all caps) utilizes Java "Type-Inferencing" - the Return-Type // is specified by the left side of the assignments statement. String needesStrField = refN.GET(1);
- Specified by:
getin classMultiType- Parameters:
i- This specifies which field of the instance is being requested.Important: Unlike a Java array, when a'1'is passed to this parameter, it is requesting the first field in this instance. Passing a value of'0'shall cause anIndexOutOfBoundsExceptionthrow.- Returns:
- This returns the
ithfield of this class. - See Also:
MultiType.get(int, Class),MultiType.GET(int)- Code:
- Exact Method Body:
// Throws Exception if i not in [1..4] CHECK_GET(i); return (i <= 2) ? ((i == 1) ? a : b) : ((i == 3) ? c : d);
-
toImmutable
public Ret4<A,B,C,D> toImmutable()
Description copied from class:TupleN- Specified by:
toImmutablein classTupleN- Returns:
- A
RetNof the same size, which is an immutable type whose fields have been decorated with the'final'modifier - and therefore cannot be changed once the instance has been constructed. - Code:
- Exact Method Body:
return new Ret4<>(this.a, this.b, this.c, this.d);
-
-