2012-08-24 2 views
2

String 값을 SQLite Cursor에 넣을 수 있도록을 입력하면 String으로 변환됩니다. 여러 구문과 메서드를 시도했지만 아무 것도 나를 위해 작동하는 것.String.valueOf (int value) 오류가 발생했습니다

Int 유형과 boolean을 변환하는 중 오류가 발생합니다. MangaItemDB()에 오류가 발생합니다.

나는 여러 기사를 보았습니다 like this one하지만 아무 것도 작동하지 않습니다.

public class MangaItem { 

private int _id; 
private String mangaName; 
private String mangaLink; 
private static String mangaAlpha; 
private static int mangaCount; 
private static int alphaCount; 

private boolean mangaComplete = false; 



public MangaItem MangaItemDB(int id, String mangaName, String mangaLink, String mangaAlpha, String mangaCount, String alphaCount, String mangaComplete) { 
    MangaItem MangaItemDB = new MangaItem(); 
    MangaItemDB._id = id; 
    MangaItemDB.mangaName = mangaName; 
    MangaItemDB.mangaLink = mangaLink; 
    MangaItemDB.mangaAlpha = mangaAlpha; 
    MangaItemDB.mangaCount = String.valueOf(int mangaCount); 
    MangaItemDB.alphaCount = Integer.toString(getAlphaCount()); 
    MangaItemDB.mangaComplete = String.valueOf(getMangaComplete()); 
    return MangaItemDB; 


} 

public void incrementMangaCount() { 
    mangaCount++; 
} 

public int getMangaCount() { 
    return mangaCount; 
} 

public void incrementAlphaCount() { 
    alphaCount++; 
} 

public int getAlphaCount() { 
    return alphaCount; 
} 

public boolean setMangaComplete(boolean mangaComplete) { 
    return true; 
} 

public boolean getMangaComplete() { 
    return mangaComplete; 
} 

/** 
* @return the mangaName 
*/ 
public String getMangaName() { 
    return mangaName; 
} 

/** 
* @param mangaName the mangaName to set 
*/ 
public void setMangaName(String mangaName) { 
    this.mangaName = mangaName; 
} 

/** 
* @return the mangaLink 
*/ 
public String getMangaLink() { 
    return mangaLink; 
} 

/** 
* @param mangaLink the mangaLink to set 
*/ 
public void setMangaLink(String mangaLink) { 
    this.mangaLink = mangaLink; 
} 

/** 
* @return the mangaAlpha 
*/ 
public String getMangaAlpha() { 
    return mangaAlpha; 
} 

/** 
* @param mangaAlpha the mangaAlpha to set 
*/ 
public void setMangaAlpha(String mangaAlpha) { 
    this.mangaAlpha = mangaAlpha; 
} 

/** 
* @return the _id 
*/ 
public int get_id() { 
    return _id; 
} 

/** 
* @param _id the _id to set 
*/ 
public void set_id(int _id) { 
    this._id = _id; 
} 

} 

의 선 :

MangaItemDB.mangaCount = String.valueOf(mangaCount); 
    MangaItemDB.alphaCount = Integer.toString(getAlphaCount()); 
    MangaItemDB.mangaComplete = String.valueOf(getMangaComplete()); 

모두 제공

여기

내 코드의 "유형 불일치 : 문자열에서 변환 할 수 없습니다 int로"

+0

'MangaItemDB.mangaCount'의 유형이 참으로 String 등인지 확인하십시오. – alfasin

답변

5
MangaItemDB.mangaCount = String.valueOf(int mangaCount); 

그 코드가 안 심지어 컴파일. 메소드를 호출 할 때 매개 변수 유형을 통과하지해야하지만, 당신이 메소드를 호출하는 대신 때 당신은 단순히 매개 변수를 전달 : 당신이 그들을있는 경우

MangaItemDB.mangaCount = String.valueOf(mangaCount); 

그래서 우리는하지 모든 컴파일 오류를 게시하시기 바랍니다 그들에게 맞춰야한다.

편집
당신 상태 :

MangaItemDB.mangaCount = String.valueOf(mangaCount); 
MangaItemDB.alphaCount = Integer.toString(getAlphaCount()); 
MangaItemDB.mangaComplete = String.valueOf(getMangaComplete()); 

all give "Type mismatch: cannot convert from String to Int"

이것은 당신이 변수를 int로 문자열을 할당하려고하고, 그래서에 결과를 변환 할 필요를 할 수없는 것으로 표시하고 제안 끈. 단순히 int를 int에 할당하고 boolean을 boolean으로 할당하지 않는 것이 어떻습니까?

MangaItemDB.mangaCount = mangaCount; 
MangaItemDB.alphaCount = getAlphaCount(); 
MangaItemDB.mangaComplete = getMangaComplete(); 

왜 정적 변수를 사용하고 있습니까? 이 일에 대한 정당성은 무엇입니까? 정적 변수를 사용하고자 할 때 매우 특정한시기가 있지만 대부분의 경우 변수는 인스턴스 변수 여야합니다.

+0

'MangaItemDB.mangaCount = String.valueOf (mangaCount);'나를 위해 작동하지 않습니다. 나는 많은 변형을 시도했다. 게시 된 것은 현재의 것일 뿐이다. – Davidrd91

+0

@ Davidrd91 : "나를 위해 일하지 않는다"는 말은 당신을 도울 수있는 충분한 정보를 말해주지 못한다. 어떻게 작동하지 않습니까? 컴파일 오류가 발생합니까? 런타임 예외입니까? 버릇 없음? 이러한 세부 사항이 중요하므로 알려 주시기 바랍니다. –

+0

명확하지 않은 점에 대해 사과드립니다. 질문이 수정되었습니다. – Davidrd91

1
MangaItem mangaItemDB = new MangaItem(); 
MangaItemDB._id = id; 
MangaItemDB.mangaName = mangaName; 
MangaItemDB.mangaLink = mangaLink; 
MangaItemDB.mangaAlpha = mangaAlpha; 
MangaItemDB.mangaCount = String.valueOf(int mangaCount); //change to mangaItemDB .setMangaCount(String.valueOf(mangaCount)); 
MangaItemDB.alphaCount = Integer.toString(getAlphaCount()); 
MangaItemDB.mangaComplete = String.valueOf(getMangaComplete()); 

코드, 아주 나쁜 관행 위를 참조하십시오. 기본적으로 당신은 아무것도하지 않고있다 -

mangaItemDB.setMangaCount(String.valueOf(mangaCount)); 
+0

그냥'mangaItemDB.setMangaCount (String.valueOf (mangaCount));'시도했지만 오류 : "setMangaCount (String) undefined"다른 솔루션을 찾을 수없는 경우이 메서드를 추가 할 수 있습니다. – Davidrd91

+0

뿐만 아니라 모든 필드 위에, 그것들을 비공개로 만들고, getter와 setter 메소드를 제공한다. 필요한 경우가 아니면 필드를 고정시키지 마십시오. –

1

MangaCount 및 알파 계수가 정적이기 때문에, 당신은 비 정적 컨텍스트에서 그들을 설정하지 않으 : 당신은 같은 getter 및 setter 메소드를 사용한다. MangaItem에서 이러한 값을 유지하려면 MangaCount 및 AlphaCount의 비 정적 버전을 만드는 것보다 좋습니다.

MangaComplete()는 부울을 반환하므로 구문 분석 할 필요가 없습니다.

정적은 클래스에 대해 한 가지 종류 만 원하는 변수 및 메서드이며 비 정적 변수 및 메서드는 클래스에 따라 다릅니다. 개체 자체에서만 사용할 수 있습니다. 그것은 세트처럼 보이고 MangaCount + AlphaCount는 정적이어야합니다.

관련 문제