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
}
이거랑 동일한 함수라고 하는데 뭔가 제네릭메서드 만들어질 당시에 개같이 디자인이 됬는지 명확하지가 않아서 보기 불편하다
걍 반환타입 필요없다 꺼져라 하면 위에처럼 반환타입 생략하고 쓰고 반환타입이랑 제네릭타입변수 둘다 필요하면 둘다 선언하라는데
걍 그럴거면 제네릭클래스 변수명이랑 다르게 하고 제네릭변수만 와일드카드를 쓰든 뭘하든 해서 쓰면 될거 같은데 뭔 지랄을 할라고 제네릭메서드같은게 튀어나온지를 모르겠음
설명봐도 제네릭메서드 안되면 와일드카드 쓰셈 ㅇㅇ 이지랄하고 있어서 진짜 왜 씀 시발 이생각들기도 하고
굳이 타입변수를 반환타입보다 먼저쓴 이유를 모르겠네 걍 이거는 디자인이 그렇게 되있으니까 코런갑다 하고 넘어가야함?
//body
}
이렇게 있으면 <T>가 왜 반환타입보다 먼저 선언된 이유도 걍 시발 제네릭메서드라는걸 명시하기 위해서 썻음 ㅇㅇ 이딴 설명아니면 제네릭클래스의 타입변수명이랑 일치할 시 스코프로 구분할라고 ㅇㅇ이딴 설명이라
뭔가 명쾌하지가 않네
Static <T> func(T abc, int def) {
//body
}
이렇게 반환타입 없는 함수는 예외적으로 허용이 된다는데 이렇게 하면
Static <T> void func(T abc, int def) {
//body
}
이거랑 동일한 함수라고 하는데 뭔가 제네릭메서드 만들어질 당시에 개같이 디자인이 됬는지 명확하지가 않아서 보기 불편하다
걍 반환타입 필요없다 꺼져라 하면 위에처럼 반환타입 생략하고 쓰고 반환타입이랑 제네릭타입변수 둘다 필요하면 둘다 선언하라는데
걍 그럴거면 제네릭클래스 변수명이랑 다르게 하고 제네릭변수만 와일드카드를 쓰든 뭘하든 해서 쓰면 될거 같은데 뭔 지랄을 할라고 제네릭메서드같은게 튀어나온지를 모르겠음
설명봐도 제네릭메서드 안되면 와일드카드 쓰셈 ㅇㅇ 이지랄하고 있어서 진짜 왜 씀 시발 이생각들기도 하고
굳이 타입변수를 반환타입보다 먼저쓴 이유를 모르겠네 걍 이거는 디자인이 그렇게 되있으니까 코런갑다 하고 넘어가야함?
제네릭 이라는 뜻의 의미를 알고 가면 편할거임
제네릭이라는게 결국 일반쓰레기통마냥 아무거나 받고 코드의 재사용성을 증대시키기 위한건지는 알겠는데 제네릭클래스도 그렇고 제네릭변수도 그렇고 코드의 맨뒤에 선언되는데 제네릭 메서드만 맨 앞에 선언되는 이유와 와일드카드로 완벽히는 아니지만 대체가 가능한데 이딴게 등장한 이유를 모르겠음 걍 동작구조는 알겠는데 왜 이따위로 설계되있는가가 궁금한거임
라는게 의미하는 게 뭐에요 선생님 'type'이잖아요. 왜 반환형 앞에 가 먼저 올까? 기본적으로 제네릭을 쓰는 이유가 뭐임? 한 가지 타입만 선언해서 사용할게 아니라 여러 개의 타입을 동시에 선언해서 사용하는 거잖아요. 일반적인 메서드를 호출할 때 우리가 앞에 타입을 명시해서 호출합니까? 아니잖아요. 기본적으로 문자열이면 Strring, 숫자형이면 int, 타입이 정확하게 지정이 되있잖아요
앞에 글 짤렸노
t라는게
근데 제네릭은 타입이 명확하게 지정된게 아니잖음
그 의미를 파고 들어보세요 왜 이렇게 설계됬는지
일반적인 메서드랑, 제네릭이랑 비교하면서 꼬리 질문만 해봐도 답이 나오는데...
걍 <>이거에 너무 깊게 꽂혀서 이상하게 해석했다 그냥 반환타입 하나 더 추가했다 이정도로 받아들이면 될거 같네 걍 뭔가 이상하게 추측하고 있었음
반환타입이라기보다는 저 T를 타입 파라미터라 부름 걍 타입을 매개변수처럼 받는다 생각하셈
제너릭을 사용한다고 알려줘야하기 떄문에 를 반환 타입 앞에 넣은거잖아 만약에 저걸 안넣으면 T가 뭐인지 컴파일러가 어떻게암 그냥 오류나고 빌드 안되니까 그런거같은데
그리고 문법이 이거는 왜 그렇고 저거는 왜 그렇고가 나름의 이유가 잇겟지만 왜 하필 그래야하는지 따지면 끝도 없음 왜 A는 아스키코드 65일까 뭔가 엄청난 이유가 잇어서가 아니고 그냥 그렇게 하자고 정한거
그거는 알겠는데 굳이 앞에 선언한 이유가 궁금하다 이거임 걍 T만 쓰면 컴파일러도 뭐 어쩌라고 이럴건데