갓 제네릭 배운 프린이인데..
배열에 있는 숫자들 출력하고 모든 수의 합을 구하는 제네릭 메소드를 짜려고 하는데
public static void sum(T[] data) {
for(int i = 0; i<p> System.out.print(data[i] + " ");
}
System.out.println();
}
이렇게 짜서 배열에 있는 숫자들은 출력이 되는데
합을 구하려고 T sum *= data[i]; 이런식으로 하니깐 += 연산자를 쓸수 없다고 나옴 ㅠ..
제네릭에서는 따로 하는 방법이 있나?ㅠ..
참고로 main에는
Integer[] a = {1,2,3} , Double[] b = {1.0, 2.0, 3.0}
이런식으로 미리 초기화 되어있고 sum(a) 하면 정수합, sum(b)하면 실수합 나오는 형태를 만들고 싶어..
엥 올리고보니 for문이 이상하게 복붙됬는데
for(int i; i<data.length; i++) 임..;;
<T extends Number>하면 되려나? 몰겠네 - dc App
T가 숫자가 올지 다른게 올지 컴파일러는 실행해보기 전까지 모르잖아. String간의 +=연산자는 정의 안돼있고, 자바는 연산자 오버로딩도 안되니까... - dc App
형 말대로 해봤는데 ㅠㅠ.. 그래도 +=가 정의되지 않았다고 뜬다...ㅠㅠ 답변고마워
자바씨발졷ㅂ쓰레깃ㅂㅅㅂc++합시다^^ - dc App
사실 내가 자바를 못하는거지만 - dc App
타입선언과 += 오니까 안되지
잉? 그게 무슨말이야? T sum += data[i]; 말고 T sum; sum += data[i]; 이렇게 해도ㅓ 똑같은데..ㅠ
Number 클래스에 산순연산이 되드나 분리했으면 int 값으로 바꾸든 double 값으로 바꾸든 해서 계산해야지 않겠니
아 언박싱 해줘야.. - dc App
슬슬 자바의 저능력을 알아가는 단계에 왔구만 핫핫