Java 错误:";字符串不能转换为int";在爪哇

Java 错误:";字符串不能转换为int";在爪哇,java,string,integer,Java,String,Integer,我试图用getter方法编写一些代码,但是在return中我遇到了一个问题 public int getNumberOfPages() { return "Number of pages: " + this.numberOfPages; } numberOfPages被声明为整数。当我编译代码时,我得到了这个错误消息“string不能转换为int”。 我如何解决这个问题?? 非常感谢 编写如下方法: public String getNumberOfPages() { r

我试图用getter方法编写一些代码,但是在
return
中我遇到了一个问题

public int getNumberOfPages()
 {
   return "Number of pages: " + this.numberOfPages;
 }
numberOfPages被声明为整数。当我编译代码时,我得到了这个错误消息“string不能转换为int”。 我如何解决这个问题??
非常感谢

编写如下方法:

 public String getNumberOfPages()
  {
   return "Number of pages: " + this.numberOfPages;
  }
 private int numberOfPages ;

public int getNumberOfPages() {
    return numberOfPages;
}

public void setNumberOfPages(int numberOfPages) {
    this.numberOfPages = numberOfPages;
}
但是如果您想使用名为
numberOfPages
的变量,并创建
set
get
方法,如下所示:

 public String getNumberOfPages()
  {
   return "Number of pages: " + this.numberOfPages;
  }
 private int numberOfPages ;

public int getNumberOfPages() {
    return numberOfPages;
}

public void setNumberOfPages(int numberOfPages) {
    this.numberOfPages = numberOfPages;
}
当您返回
“页数:”+this.numberOfPages
时,Java将其解释为字符串,因为没有数字方法将
“页数:”
表示为int,Java会给您一个错误

如果您想打印
此.numberOfPages
并在其前面加上文本
“页数:
,我相信您会希望在输出文本时调用该函数

System.out.println("Number of pages: " + getNumberOfPages());

您声明的方法

public int getNumberOfPages()
应该返回
int
类型,但您正在返回

return "Number of pages: " + this.numberOfPages;
“页数:
部分不是
int
,它是
字符串的一种

我想你要做的是打印出页数,所以这里有两种方法

1不是最好的方法

只需将您的返回类型从
int
更改为
String

class ClassName {
    int numberOfPages = 10;
    public String getNumberOfPages() {
      return "Number of pages: " + numberOfPages;
    }
}

public class MyApp {
    public static void main(String[] args) {
        ClassName instanceName = new ClassName();
        System.out.println(instanceName.getNumberOfPages());
    }
}
2更好的方法

仅将变量
numberOfPages
返回到方法,并将
页数:
部分添加到
println

class ClassName {
    int numberOfPages = 10;
    public int getNumberOfPages() {
      return numberOfPages;
    }
}

public class MyApp {
    public static void main(String[] args) {
        ClassName instanceName = new ClassName();
        System.out.println("Number of Pages: " + instanceName.getNumberOfPages());
    }
}
这样,您以后也可以使用
getNumberOfPages()
方法进行其他操作


*还要注意的是,在
getNumberOfPages()
方法中不必使用
this
关键字,除非有阴影,但这里显然没有阴影。

您返回的是一个字符串
“页数:“+this.numberOfPages
是字符串。您必须返回
this.numberOfPages
什么是numberOfPages?最后我希望看到这样的“页数:100”。numberOfPages只是一个由用户设置的数字。也许您需要将函数定义为返回字符串?确切地说,我想看到“页数:100”。数字将由用户设置。@mrv\u如何设置页数?public void setNumberOfPages(){System.out.println(“请设置定期打印介质的页数”);Scanner input=new Scanner(System.in);int numberOfPages=input.nextInt();this.numberOfPages=numberOfPages;}我这样设置方法。@mrv\u ce ok如果您像您所说的那样设置值,请使用上面的代码,我将使用toString方法中的get方法来获取有关媒体的信息列表。但是,如果缺少任何信息,则不应将其写为空行。如果没有关于页数的信息,则不应存在关于页数的行。为此,我发现将信息添加到get方法是最简单的方法。谢谢你的建议。