Static <T> int func(T abc, int def) {

//body

}

이렇게 있으면 <T>가 왜 반환타입보다 먼저 선언된 이유도 걍 시발 제네릭메서드라는걸 명시하기 위해서 썻음 ㅇㅇ 이딴 설명아니면 제네릭클래스의 타입변수명이랑 일치할 시 스코프로 구분할라고 ㅇㅇ이딴 설명이라

뭔가 명쾌하지가 않네
Static <T> func(T abc, int def) {

//body

}

이렇게 반환타입 없는 함수는 예외적으로 허용이 된다는데 이렇게 하면

Static <T> void func(T abc, int def) {

//body

}

이거랑 동일한 함수라고 하는데 뭔가 제네릭메서드 만들어질 당시에 개같이 디자인이 됬는지 명확하지가 않아서 보기 불편하다

걍 반환타입 필요없다 꺼져라 하면 위에처럼 반환타입 생략하고 쓰고 반환타입이랑 제네릭타입변수 둘다 필요하면 둘다 선언하라는데

걍 그럴거면 제네릭클래스 변수명이랑 다르게 하고 제네릭변수만 와일드카드를 쓰든 뭘하든 해서 쓰면 될거 같은데 뭔 지랄을 할라고 제네릭메서드같은게 튀어나온지를 모르겠음

설명봐도 제네릭메서드 안되면 와일드카드 쓰셈 ㅇㅇ 이지랄하고 있어서 진짜 왜 씀 시발 이생각들기도 하고

굳이 타입변수를 반환타입보다 먼저쓴 이유를 모르겠네 걍 이거는 디자인이 그렇게 되있으니까 코런갑다 하고 넘어가야함?