What does (angle brackets) mean in Java?

后端 未结 6 1642
轮回少年
轮回少年 2020-11-22 05:12

I am currently studying Java and have recently been stumped by angle brackets(<>). What exactly do they mean?

public class Pool{
    public inter         


        
6条回答
  •  梦如初夏
    2020-11-22 05:54

    is a generic and can usually be read as "of type T". It depends on the type to the left of the <> what it actually means.

    I don't know what a Pool or PoolFactory is, but you also mention ArrayList, which is a standard Java class, so I'll talk to that.

    Usually, you won't see "T" in there, you'll see another type. So if you see ArrayList for example, that means "An ArrayList of Integers." Many classes use generics to constrain the type of the elements in a container, for example. Another example is HashMap, which means "a map with String keys and Integer values."

    Your Pool example is a bit different, because there you are defining a class. So in that case, you are creating a class that somebody else could instantiate with a particular type in place of T. For example, I could create an object of type Pool using your class definition. That would mean two things:

    • My Pool would have an interface PoolFactory with a createObject method that returns Strings.
    • Internally, the Pool would contain an ArrayList of Strings.

    This is great news, because at another time, I could come along and create a Pool which would use the same code, but have Integer wherever you see T in the source.

提交回复
热议问题