What does <T> T mean when used as a method signature? Is it a return type?

和自甴很熟 提交于 2019-12-01 05:44:43

问题


abstract public <T> T iterEdges(EdgeFun<T> func, T accum);

This is for a multithreaded library for graphs. I am not asking for anything pertinent to actual implementation whatsoever, I just don't understand what the double return types mean?

I am just guessing here, but this is my interpretation (I tried googling, but Google doesn't match on non alphanumeric symbols, so I tried a few combinations of terms but didn't get anywhere.)

It is just saying that it will return some kind of collection of T type? Two classes extend the class that this method is found within, and so I guess it allows for polymorphism, but what is the true meaning of this?


回答1:


It is a generic method. The first is for the generic type that would be used. The function is also declaring that is returns that type T. The parameters are showing that they use that generic parameter type.




回答2:


T is a generic type. It allows generic type invocation when using the class in actual code.

You may have also seen <K, V> in hash maps. Below is the legend for other parameters

E - Element (used extensively by the Java Collections Framework)
K - Key
N - Number
T - Type
V - Value
S,U,V etc. - 2nd, 3rd, 4th types

http://docs.oracle.com/javase/tutorial/java/generics/types.html



来源:https://stackoverflow.com/questions/25829737/what-does-t-t-mean-when-used-as-a-method-signature-is-it-a-return-type

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!