2012-04-01 3 views
8

기본적으로, 내가하려는 것은 항목 ID를 얻고 ini에서 가격을 설정하는 것입니다. itemid : price 하지만 간단히 할 수는 없습니다. item.getId(). toString(). 아이템을 얻으려고합니다. 문자열로 만들려면 어떻게해야합니까? 내 코드입니다 기본 유형 int에서 toString()을 호출 할 수 없습니다

public static void getBuyPrice(Item item) { 
    try { 
     String itemId = item.getId().toString(); 
     BufferedReader br = new BufferedReader(new FileReader(new File(
       "./data/prices.ini"))); 
     String line; 
     while ((line = br.readLine()) != null) { 
      if (line.equals(itemId)) { 
       String[] split = line.split(":"); 
       item.getDefinitions().setValue(Integer.parseInt(split[1])); 
      } 
     } 
     br.close(); 
    } catch (Throwable e) { 
     System.err.println(e); 
    } 
} 

(물론 내가 item.getId에서 오류가(). toString()), 내가 문자열로 그것을 변환하기 위해 무엇을 할 수 있는가? 그들이 자바 객체 아니기 때문에

+3

String itemID = ""+ item.getId(); –

+0

죄송합니다. (코멘트 할 수있는 충분한 권한이 없기 때문에) 완전한 답변이 아니지만 Item 클래스의 ID에 toString() 메소드를 작성 했습니까? ID가 기본 유형이면 Integer.toString (item.getId()를 사용하십시오.) –

답변

45

원시 유형, 방법이 없습니다. 일치하는 클래스를 사용해야합니다.

Integer.toString(item.getId()); 
+0

설명해 주셔서 감사합니다. –

6
String itemId = Integer.toString(item.getId()); 
+0

아, 그렇다면 왜 이런 생각을하지 않았습니까? 감사합니다! –

+0

@QuantumMechanic : 당신이 나를 이길 거예요. –

-1

기본 유형 (int, double, byte 등)은 메소드를 가질 수 없습니다. 그래서 이것을 사용 :

String itemId = String.valueOf(item.getId()); 
0

또 다른 간단한 방법은 민트가 할당 된 가정, "" + myInt 말을하는 것입니다.

그래서 시도 : 물론

item.getDefinitions().setValue("" + Integer.parseInt(split[1])); 

, 당신은 구문 분석 오류 또는 분할이있는 경우 시도/캐치에 라인을 포장 할 수있다 [1], 범위 등 중 인덱스 null의 경우

또는 Integer.valueOf(str) 메서드는 .toString() 함수를 직접 호출 할 수있는 정수 개체 (기본 개체와 반대)를 반환합니다.

item.getDefinitions().setValue(Integer.valueOf(split[1]).toString()); 

특히 많은 정수 개체를 캐시하기 때문에 .valueOf()가 좋습니다.

관련 문제