ジェネリックに関する質問です。
static <T> T as( Object o ) {
    return (T) o;
}
というコードの動きがよく解りません。
Tという総称型にキャストし、<T>が戻り値の型となることは解るんですが、<T>の後ろのTが何を意味しているんでしょうか?