错误:"字符串无法转换为int"在Java中

时间:2015-12-23 22:20:53

标签: java string integer

我尝试使用getter方法编写一些代码,但在return我遇到了问题

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

numberOfPages声明为整数。当我编译代码时,我收到此错误消息"字符串无法转换为int"。 我该如何解决这个问题? 非常感谢。

3 个答案:

答案 0 :(得分:3)

您声明的方法

public int getNumberOfPages()

应返回int类型,但您要返回

return "Number of pages: " + this.numberOfPages;

"Number of pages: "部分不是int,它是String的类型。

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

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返回到您的方法,并将"Number of pages: "部分添加到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()方法进行其他操作。

*另请注意,除非出现阴影,否则您不必在this方法中使用getNumberOfPages()关键字,但此处显然没有阴影。

答案 1 :(得分:2)

写下这样的方法:

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

但是如果你想使用名为numberOfPages的变量并创建这样的setget方法:

 private int numberOfPages ;

public int getNumberOfPages() {
    return numberOfPages;
}

public void setNumberOfPages(int numberOfPages) {
    this.numberOfPages = numberOfPages;
}

答案 2 :(得分:1)

当你返回"Number of pages: " + this.numberOfPages时,Java将其解释为字符串,因为没有数字方式将"Number of pages: "表示为int而Java会给你一个错误。

如果您要打印this.numberOfPages前面带有文字"Number of pages: ",我相信您会在输出文字时调用该功能......

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