2011-10-26 3 views
-1
public BitMapSet(int[] init){ 
    for(int n: init) { 
     Integer i = new Integer(n); 
     if(bitmap.contains(i)){ 
      System.out.println("There is duplicated value"); 
     }else{ 
      bitmap.add(i); //Add individual value into array 
     } 
    } 
} 

public void add(T val){ 
    if(cast(val) < 0 || cast(val) >99){ //range of integers between 0 – 99 
     throw new IndexOutOfBoundsException("Please enter value between 0 to 99"); 
    }else{ 
     if(bitmap[cast(val)]!=1){ //Check for array position exist value 
     bitmap[cast(val)]=1; // there is no existing value, change value = 1; 
     size++; //increase size 
    } 
} 

오류에 캐스팅 : 기호 방법 추가 (java.lang.Integer의를) 찾을 수 없습니다자바는 일반적인

내가 (T 발)에 정수 형식을 변환 어떻게 부탁합니다

은 .. 내가처럼 보였다 내가 혼란스러워하는 던지기를 할 필요가있어.

내가 잘못하면 친절하게 제 의견을 수정하십시오.

내가 의견에 동의

+7

'비트 맵'선언을 보내지 않았습니다. –

+2

'add (T val)'메소드의 인자를 generic으로 선언 했는데도 주석의 모든 값을 정수로 다루고 있다는 것이 흥미 롭습니다! 왜 그냥'add (int val)'메소드로 만들지 않는가? – BalusC

+1

누락 된 코드를 추가 할 수 있습니까? BitMapSet은 무언가를위한 생성자 인 것처럼 보이지만 비트 맵 객체가 주어지면 Set의 하위 클래스 나 Set의 구현이 아닙니다. 그러나 비트 맵 객체 란 무엇입니까? 두 번째 코드 세그먼트의 배열이지만 첫 번째 코드 세그먼트에서는 Collection 인터페이스를 구현하는 클래스에있는 contains() 메서드를 사용합니다. –

답변

0

, 왜 당신이 일반적인하고있다 주셔서 감사합니다?

그렇지 않으면 당신이 제네릭을 사용하려는 경우
public void add(int val){ 
    if(val < 0 || val >99){ //range of integers between 0 – 99 
     throw new IndexOutOfBoundsException("Please enter value between 0 to 99"); 
    }else{ 
    if(bitmap[val]!=1){ //Check for array position exist value 
     bitmap[val]=1; // there is no existing value, change value = 1; 
     size++; //increase size 
    } 
} 

, 같은 당신이 제공된 객체가 방식으로 비교 될 수있는 종류가 될 것이라는 점을 알고 캐스팅에 대한 필요는 아직 없다 ... 당신이 시도 되세요 당신이 제시했습니다.

public <T> void add(T val){ 
    if(val < 0 || val >99){ //range of integers between 0 – 99 
     throw new IndexOutOfBoundsException("Please enter value between 0 to 99"); 
    }else{ 
    if(bitmap[val]!=1){ //Check for array position exist value 
     bitmap[val]=1; // there is no existing value, change value = 1; 
     size++; //increase size 
    } 
}