在Java中找不到符号错误消息

时间:2012-10-17 01:44:13

标签: java string

嗨,我收到了错误:

  

无法为此方法找到符号 - 变量Andrew。

我需要改变什么?

/**
* Create a method that says hi if the name is the same as yours and go away otherwise.
* 
* @author (your name) 
* @version (a version number or a date)
*/
public class String
{
public void greeting(String name) {
    String myName;
    myName = Andrew;
    if (name == myName) {
        System.out.println("Hi");
    }
        else {
            System.out.println("Go away");
        }

    }

}

5 个答案:

答案 0 :(得分:2)

使用equals()来比较字符串,==会比较参考,也没有Andrew

的声明

答案 1 :(得分:1)

myName = Andrew;

您正在使用尚未声明的Andrew,因此您无法使用它。

为了能够使用它,你必须首先声明(也正确初始化以在运行时看到正确的结果)

String Andrew;

之前使用它。

另一个问题是您的班级名称String。在方法public void greeting(String name)中,您指的是String类,您自己的java.lang.String

答案 2 :(得分:1)

String myName = "Andrew";
if (name.equals(myName)) {
    System.out.println("Hi");
}

最好以其他方式进行比较,例如myName.equals(name) 代替name.equals(myName) myName,因为name可以是null,因此{{1}}不为空,这将导致NullPointerException。

答案 3 :(得分:0)

试试这样:

public class String
{
public void greeting(String name) {
    String myName;
    myName = "Andrew";
    if (name.equals(myName)) {
        System.out.println("Hi");
    }
        else {
            System.out.println("Go away");
        }

    }

}

答案 4 :(得分:0)

String myName;
myName = Andrew;

什么是Andrey?根据Java语法,compiller期望它是一个变量,但实际上并没有这样的变量。我想你想写一些像

这样的东西
String myName;
myName = "Andrew";//this is correct initialization