-3

嗨,我收到了错误:

找不到符号 - 此方法的变量 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");
        }

    }

}
4

5 回答 5

2

用来equals()比较String,==会比较引用,也没有声明Andrew

于 2012-10-17T01:45:36.270 回答
1
myName = Andrew;

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

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

String Andrew;

像这样在你使用它之前。

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

于 2012-10-17T01:48:01.277 回答
1
String myName = "Andrew";
if (name.equals(myName)) {
    System.out.println("Hi");
}

最好以其他方式进行比较,例如myName.equals(name)代替name.equals(myName)since myNameis not null for sure while namecan be null,这将导致 NullPointerException。

于 2012-10-17T01:50:18.590 回答
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");
        }

    }

}
于 2012-10-17T01:47:50.687 回答
0
String myName;
myName = Andrew;

什么是Andrey?根据 Java 语法,编译器认为它是一个变量,但实际上并没有这样的变量。我想你想写类似的东西

String myName;
myName = "Andrew";//this is correct initialization
于 2012-10-17T01:48:38.157 回答