无法从方法返回字符串

时间:2013-12-01 09:22:06

标签: java string oop get return

  

构造函数接受String并将其存储在局部变量modifier中。然后我想通过modifier方法返回getModifer()。但是,该方法无法返回从构造函数传入的String。请帮我看看问题所在。谢谢!

private String modifer;

public UMLAccessModifer(String input)
{   
    /**
     * Takes in the type of access modifier.
     */

    this.modifer = input;

    if(input.toLowerCase().contains("public")){
        this.modifer = "public";

    }
    else if(input.toLowerCase().contains("private")){
        this.modifer = "private";

    }
    else if(input.toLowerCase().contains("protected")){
        this.modifer = "protected";

    }
    else {
        this.modifer = "private";

    }

}

public String getModifer() {
    /**
     * Returns the string of Modifier.
     */
    return modifer;

1 个答案:

答案 0 :(得分:0)

这是一个有点简化的代码版本,可以使用:

public class UMLAccessModifier
{
    private String modifier;

    public UMLAccessModifier(String input)
    {   
        if(input.toLowerCase().contains("public"))
        {
            modifier = "public";
        }

        else if(input.toLowerCase().contains("protected"))
        {
            modifier = "protected";
        }

        else 
        {
            modifer = "private";
        }
    }

    public String getModifier() 
    {
        return modifier;
    }
}

不确定您在做什么,但getModifier()肯定会返回modifier。很可能你没有通过你认为的那样,或者你在某种程度上改变了返回值,但我保证会返回String

我唯一能想到的是你期望从只调用构造函数返回字符串,这不会发生。您需要从构造函数中获取的对象中调用getModifier(),即:

UMLAccessModifier test =  new UMLAccessModifier("garbage");
System.out.println(test.getModifier());
//prints: private