返回类型错误消息

时间:2013-11-26 19:48:55

标签: java return

public class Key {

    public Encode() {
        StringBuffer passWord = new StringBuffer("bubbles");
        System.out.println("Original plain text:" + passWord);

        for (int i = 0; i < passWord.length(); i++) {
            int temp = 0;
            temp=(int)passWord.charAt(i);
            temp=  temp* 9;
            EncodedText = passWord.setCharAt(i , (char)temp);
            return EncodedText;
        }

        //return EncodedText;
    } 

}

只需编写一个小程序来编码(和解码)一小段文本,但每当我运行它时都会出现相同的错误消息

&#34;错误:方法声明无效;需要返回类型     public Encode(){&#34;            ^

4 个答案:

答案 0 :(得分:1)

您的方法没有返回类型。它需要这样才能知道它返回的数据类型。

public <type goes here> Encode() {

EncodedText = passWord.setCharAt(i , (char)temp);

没有意义。 EncodedText是一个类,它在分配给它之前需要一个实例。应该是

EncodedText variableName = passWord.setCharAt(i , (char)temp);

但可能更像(我不知道没见过那个班级)

EncodedText variableName = new EncodedText(passWord.setCharAt(i , (char)temp));

这个

return EncodedText;

也没有意义,这是试图返回一个类,也许你的意思是返回类的实例

return variableName;

在这种情况下,在第一个错误中,您可能意味着

public EncodedText Encode() {

除此之外,还有一些其他错误,如果没有看到EncodedText类,我无法正确诊断。错误就像在一个似乎正在构建EncodedText对象的循环中返回而缺少所述对象的创建。

答案 1 :(得分:0)

这里有几个错误。

  1. 您的方法没有返回类型。
  2. EncodedText没有类型。
  3. 你不希望你的return在for循环中,它会使循环无用,因为它会在第一次迭代中返回。
  4. setCharAt()作为返回类型无效,您无法将其分配给变量。

答案 2 :(得分:0)

你需要在publicEncode()之间放置一个返回类型(例如String,int,double等),在这种情况下可能是StringBuffer。尝试public StringBuffer Encode() {...}

答案 3 :(得分:0)

此外,您没有遵循正确的Java命名约定。应该是这样的:

public returnType methodName(dataType parameter1, dataType parameter2){
}

e.g。

public int add(int a, int b){
   return a+b;
}

用于命名约定标准,请参阅: http://java.about.com/od/javasyntax/a/nameconventions.htm