일부 이전 버전과의 호환성 문제가 있음을 알고 컴파일러에서는 허용되지 않습니다.목록 <Integer> 또는 목록 <Double>을 Java에서 수용 할 수있는 오버로드 된 함수를 작성하는 방법은 무엇입니까?
Method has the same erasure as another method in type
다른 사람이 어떻게 달성합니까? 서로 다른 함수 이름으로 정의하는 것보다 다른 솔루션이 있습니까?
일부 이전 버전과의 호환성 문제가 있음을 알고 컴파일러에서는 허용되지 않습니다.목록 <Integer> 또는 목록 <Double>을 Java에서 수용 할 수있는 오버로드 된 함수를 작성하는 방법은 무엇입니까?
Method has the same erasure as another method in type
다른 사람이 어떻게 달성합니까? 서로 다른 함수 이름으로 정의하는 것보다 다른 솔루션이 있습니까?
아마도 매개 변수를 객체 목록으로 사용할 수 있습니다. 이 쿼리를 해결하면 실현하는 것이에서 전달 된 객체의 클래스 유형을 확인하고 정수에 대해 서로 다른 및
동의하시기 바랍니다 이중 처리 할 수있는 스위치가 /, 투표를
자신 만의 제안을 시도해보십시오. 적합하지 않음을 알 수 있습니다. 힌트 : 목록
제네릭 시스템을 완전히 피하는 것이 문제를 해결하는 가장 좋은 방법은 아닙니다. 특히 형식이 가까운 수퍼 클래스 ('번호')를 공유하는 경우에 특히 그렇습니다. – chrylis
죄송합니다. 네, 답을 제출 한 직후에 이것에 대해 생각했습니다. 답변을 게시 한 후 삭제할 수있는 방법을 찾지 못했습니다. – MansoorShaikh
이 때문에 bytecodelevel에서, 일반입니다 기본적으로 개체 목록이있어 두 개의 동일한 메서드 서명이 생성됩니다.
그러나 이러한 유형이 다양하므로 요구 사항에 맞는 경우 Integer[]
및 Double[]
을 사용할 수 있습니다.
List와 같이 일반화 할 수 있으며 인스턴스 생성시 원하는 것을 말하십시오. List 또는 List로 선언하십시오. 메인에 나중에에 다음 괄호 안에 T,V,B
또는 기타 원하는 매개 변수를 작성하고 있습니다
List<> list= new ArrayList<>();
당신이 Integer
또는 Double
을 같이하거나 일반 매개 변수를 정의 - :
처럼 일반적인 목록 만들기 . 일반적으로 T
이 사용됩니다.
이해를 돕기 위해 제네릭을 읽습니다.
사용 사례가 무엇인지 설명해주십시오. 별도의 메소드 이름을 사용하는 것이 가장 좋은 방법 일 수 있지만 예를 들어'List '를 사용할 수도 있습니다. –
chrylis
x 및 y 좌표를 숫자 목록으로 가져오고, 두 배이면 x 또는 y를 기준으로 폭 또는 높이로 배율을 조정합니다. –
@ChakradarRaju 그건 끔찍한 디자인입니다. 이러한 미묘한 차이점은 정수와 부동 소수점 사이의 오버로딩 차이에 의존해서는 안됩니다. 두 가지 메소드에 다른 이름을 지정하십시오. –