Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java valueOf(int值)给出错误_Java_String_Type Conversion - Fatal编程技术网

Java valueOf(int值)给出错误

Java valueOf(int值)给出错误,java,string,type-conversion,Java,String,Type Conversion,我正在尝试将int转换为String,以便将String值放入SQLite游标。我尝试了多种语法和方法,但似乎都不适合我 当尝试转换任何Int类型以及布尔值时,MangaItemDB()中出现错误 我看过几篇文章,但没有一篇适合我 这是我的密码: public class MangaItem { private int _id; private String mangaName; private String mangaLink; private static String mangaAlph

我正在尝试将
int
转换为
String
,以便将
String
值放入SQLite游标。我尝试了多种语法和方法,但似乎都不适合我

当尝试转换任何
Int
类型以及
布尔值时,
MangaItemDB()
中出现错误

我看过几篇文章,但没有一篇适合我

这是我的密码:

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());
all give“类型不匹配:无法从字符串转换为Int”

这些代码甚至不应该编译。调用方法时不应传递参数类型,而在调用方法时只需传递参数:

MangaItemDB.mangaCount = String.valueOf(mangaCount);
如果您有编译错误,请发布所有编译错误,这样我们就不必猜测了

编辑
你说:

MangaItemDB.mangaCount = String.valueOf(mangaCount);
MangaItemDB.alphaCount = Integer.toString(getAlphaCount());
MangaItemDB.mangaComplete = String.valueOf(getMangaComplete());
all give“类型不匹配:无法从字符串转换为Int”

这表明您正在尝试将字符串分配给int变量,因此似乎不需要将结果转换为字符串。为什么不简单地将整数赋给整数,将布尔赋给布尔呢

MangaItemDB.mangaCount = mangaCount;
MangaItemDB.alphaCount = getAlphaCount();
MangaItemDB.mangaComplete = getMangaComplete();
还有,为什么要使用静态变量?这样做的理由是什么?在某些特定的时候,您需要使用静态变量,但大多数情况下,您的变量应该是实例变量

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

因为MangaCount和Alpha count是静态的,所以您不希望在非静态上下文中设置它们-实际上您什么也不做。如果您想让MangaItem保存这些值,那么就制作一个非静态版本的MangaCount和AlphaCount

MangaComplete()返回一个布尔值,因此不需要解析它


静态变量和方法对于类来说只有一种类型,而非静态变量和方法是特定于类的-它们只能从对象本身使用。似乎set和get MangaCount+AlphaCount应该是静态的。

MangaItemDB.MangaCount=String.valueOf(MangaCount)对我不起作用。我尝试过很多变体,发布的只是当前版本ones@Davidrd91:“不适合我”没有告诉我们足够的信息来帮助你。它怎么不起作用?你有编译错误吗?运行时异常?行为不端这些细节很重要,所以请让我们知道。很抱歉不清楚。问题已被编辑。@David:再次,请参见编辑我的答案。变量
mangaCount
alphaCount
是XML中元素的计数器,因此是type
Int
。我现在明白了为什么
Int
值无法转换,因为我正在将它们保存在类型
Int
变量中
但这返回错误:“setMangaCount(String)未定义”如果找不到其他解决方案,我想我可以添加此方法。不仅如此,首先,将所有字段设置为私有,提供getter和setter方法。除非必要,否则不要将字段设置为静态。请确保
MangaItemDB.mangaCount
的类型确实是字符串等。
mangaItemDB.setMangaCount(String.valueOf(mangaCount));