基本ToString错误

时间:2015-01-04 23:13:41

标签: java tostring

我目前正在开发一个需要ToString的项目。我创建了一个非常简单的方法和ToString来说明我的问题。我的evaluateValue方法将执行特定计算并设置occupationage变量。

问题是我的ToString不会打印任何内容。我希望ToString显示我的方法已完成的工作,但不确定它为什么不能正常工作。

期望的输出:

Name: Bob 
Occupation: Farmer
Age: 31

我的代码:

public class ToStringExample
{
    static String occupation;
    static int age;

    private static void evaluateValue(String name)
    {   
        if(name.equals("Bob"))
        {
            occupation = "Farmer";
            age = 31;
        }

        if(name.equals("Fred"))
        {
            occupation = "Programmer";
            age = 45;
        }

        else
        {
            occupation = "Undefined";
            age = 22;
        }
    }

    public String toString()
    {
        return "Name: " + name + "\nOccupation: " + occupation + "\nAge: " + age;       
    }

    public static void main(String[] args) 
    {
        System.out.println(evaluateValue("Bob"));
    }
}

2 个答案:

答案 0 :(得分:2)

不要做所有事情static。实例化一个实例(所以你可以在其上调用toString())。像,

public class ToStringExample {
    String occupation;
    int age;
    String name;

    public ToStringExample(String name) {
        this.name = name;
    }

    public void evaluateValue() {
        if (name.equals("Bob")) {
            occupation = "Farmer";
            age = 31;
        } else if (name.equals("Fred")) {
            occupation = "Programmer";
            age = 45;
        } else {
            occupation = "Undefined";
            age = 22;
        }
    }

    public String toString() {
        return "Name: " + name + "\nOccupation: " + occupation + "\nAge: "
                + age;
    }

    public static void main(String args[]) {
        ToStringExample tse = new ToStringExample("Bob");
        tse.evaluateValue();
        System.out.println(tse);
    }
}

输出

Name: Bob
Occupation: Farmer
Age: 31

答案 1 :(得分:0)

您无法打印evaluateValue(),因为它是void方法。相反,您可以从evaluateValue中删除static修饰符并创建一个ToStringExample对象。然后你可以调用evaluateValue("Bob")并打印对象。