Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
284 views
in Technique[技术] by (71.8m points)

java - What does the dot operator `.` (before the generic parameter) mean?

I saw this code today:

    ImmutableMap<Class<? extends ClientCommand>, CommandProcessorInterface> immutableMap =
            ImmutableMap.<Class<? extends  ClientCommand>, CommandProcessorInterface>of(...

What does this syntax mean?

ImmutableMap.<Class ..

I knew generics was right after the class name. No?

What is the difference between:

ImmutableMap<Class.. and ImmutableMap.<Class..

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It means you're invoking a generic static method, called of in the ImmutableMap class.

It's pretty much the same as you're invoking a static method, nested in some class:

SomeClass.staticMethod();

For the cases when your method has a type-parameter defined, you can explicitly provide the generic type and this is done like this:

SomeClass.<Type>genericStaticMethod();

And to answer you final question:

What is the difference between ImmutableMap<Class...> and ImmutableMap.<Class... ?

The first is usually used when creating an instance of a generic class. It's used to define the generic-type on class level, while the second is used to invoke a generic static method that's nested in some class.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...