2

値を SQLite カーソルに入れることができるようにint、を に変換しようとしています。複数の構文とメソッドを試しましたが、どれもうまくいかないようです。StringString

型だけでなく、型MangaItemDB()を変換しようとしているときにエラーが発生します。Intboolean

このような記事をいくつか見てきましたが、どれもうまくいきません。

これが私のコードです:

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());

すべて「型の不一致: String から Int に変換できません」

4

3 に答える 3

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());

すべて「型の不一致: String から Int に変換できません」

これは、文字列を int 変数に割り当てようとしていることを示唆しているため、結果を文字列に変換する必要はないようです。int を int に、boolean を boolean に単純に割り当てないのはなぜですか?

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

また、なぜ静的変数を使用しているのですか? これを行う正当な理由は何ですか?静的変数を使用したいという非常に特殊な場合がありますが、ほとんどの場合、変数はインスタンス変数にする必要があります。

于 2012-08-24T17:17:02.763 に答える
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());

上記のコードを参照してください。非常に悪い習慣です。次のような getter メソッドと setter メソッドを使用する必要があります。

mangaItemDB.setMangaCount(String.valueOf(mangaCount)); 
于 2012-08-24T17:22:59.900 に答える
1

MangaCount と Alpha カウントは静的であるため、非静的なコンテキストでそれらを設定する必要はありません。基本的に何もしていません。MangaItem にこれらの値を保持させたい場合は、非静的バージョンの MangaCount と AlphaCount を作成します。

MangaComplete() はブール値を返すため、解析する必要はありません。

静的変数とメソッドは、クラスに 1 種類だけ必要な変数とメソッドであり、非静的変数とメソッドはクラス固有であり、オブジェクト自体からのみ使用できます。set と get MangaCount+AlphaCount は静的であるように思われます。

于 2012-08-24T17:35:11.047 に答える