javagenericssyntaxtype-parameter

Java Generics <T> Meaning


I was reading and reviewing the following site and had a question.

https://www.geeksforgeeks.org/angle-bracket-in-java-with-examples/

In the explanations below they show class definitions followed by <T> and then when actually implementing these classes they use different types such as or as the parameters. My question is: is the '' notation actually a defined syntax in Java? In particular, is the T a necessary thing in order to define a "Generic"? And then does it basically mean that the parameters can be of multiple different types? Also, if anyone can reword or explain in simpler terms what the meaning of a generic is that would be very helpful. Thanks.


Solution

  • The <T> is indeed a syntax defined by Java, but you can use whatever name you want to name a type, you don't need to use T, for example this is valid:

    public class Box<MyType> {
        private MyType t;
    
        public void set(MyType t) { this.t = t; }
        public MyType get() { return t; }
    }
    

    But, stick with T or other common type names, as other people are already used to seeing those as the "generic types" so it makes reading your code simpler.

    I recommend you read Java's Trail about Generics, where you can find the most commonly used type parameter names:

    E - Element
    K - Key
    N - Number
    T - Type
    V - Value
    S,U,V etc. - 2nd, 3rd, 4th types
    

    As for "what the meaning of generics is", check this other page.