这种不兼容的类型错误有什么问题?

时间:2013-09-17 22:39:08

标签: java runtime-error

我无法弄清楚为什么会收到此错误。

以下是代码:

public static int WriteBirdType() {

BufferedReader reader = new BufferedReader( new FileReader ("fugler.txt"));
String         line = null;
StringBuilder  stringBuilder = new StringBuilder();
String         ls = System.getProperty("line.separator");

while( ( line = reader.readLine() ) != null ) {
stringBuilder.append( line );
stringBuilder.append( ls );
}

return stringBuilder.toString();

这是错误:

test.java:78: error: incompatible types
return stringBuilder.toString();
                             ^
required: int
found:    String
1 error

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:5)

当您声明方法返回String时,您试图返回int。要么返回int,要么将方法的返回类型更改为String

答案 1 :(得分:4)

您的返回类型必须与方法签名匹配。

如果返回类型为int,则需要返回int而不是字符串。 toString()返回一个字符串。如果需要返回String,则将方法签名更改为String,而不是int。

这样做:

    //change return type to string
    public static String WriteBirdType() {

    BufferedReader reader = new BufferedReader( new FileReader ("fugler.txt"));
    String         line = null;
    StringBuilder  stringBuilder = new StringBuilder();
    String         ls = System.getProperty("line.separator");

    while( ( line = reader.readLine() ) != null ) {
    stringBuilder.append( line );
    stringBuilder.append( ls );
    }

     return stringBuilder.toString();