错误的符号类型
Erroneous sym type
我搜索了几个不同的帖子,但没有找到我遇到的确切问题。我觉得我缺少的东西应该非常明显,但由于某种原因不能完全确定它一直在玩所有东西但不能完全理解它。如果有人能帮我一把,我将不胜感激。该程序旨在从文本文件中提取房屋信息并将其输出。 JMUnit7 文件是导师给我们的。 JMUnit7House 文件是我的作品。提前致谢。
package jmunit7;
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
/**
*
* @author Xephus
*/
public class JMUnit7 {
/**
* @param args the command line arguments
* @throws java.lang.Exception
*/
public static void main(String[] args) throws Exception
{
Scanner stdIn = new Scanner(System.in);
Scanner stdInFile = new Scanner(new
File("JMUnit7House.txt"));
JMUnit7House house1, house2; //New houses
//Create house 1 using default constructor
house1 = new JMUnit7House();
house1.print(); //print house 1 with default values
String street, city, state, zipCode;
int number;
System.out.println("Importing Number.");
number = stdInFile.nextInt();
stdInFile.nextLine();
System.out.println("Importing Street.");
street = stdInFile.nextLine();
System.out.println("Importing City.");
city = stdInFile.nextLine();
System.out.println("Importing State.");
state = stdInFile.nextLine();
System.out.println("Importing ZipCode.");
zipCode = stdInFile.nextLine();
System.out.println();
//use method call chaining to set values
//and print results for house 1
house1.setNumber(number).setStreet(street)
.setCity(city).setState(state)
.setZipCode(zipCode).print();
System.out.println("Importing Number.");
number = stdInFile.nextInt();
stdInFile.nextLine();
System.out.println("Importing Street.");
street = stdInFile.nextLine();
System.out.println("Importing City.");
city = stdInFile.nextLine();
System.out.println("Importing State.");
state = stdInFile.nextLine();
System.out.println("Importing ZipCode.");
zipCode = stdInFile.nextLine();
System.out.println();
//create house 2 using 5 parameter constructor
house2 = new JMUnit7House(number,
street, city, state, zipCode);
//print house 2
house2.print();
}
}
我的代码如下,我收到了错误的符号类型错误,它是:线程异常 "main" java.lang.RuntimeException:无法编译的源代码 - 错误的符号类型:.setCity.setState.setZipCode.print 在 jmunit7 .JMUnit7.main(JMUnit7.java:49) 49 是 house1.setNumber 行。
public class JMUnit7House {
private int number;
private String street;
private String city;
private String state;
private String zipCode;
public JMUnit7House()
{
number = 0;
street = "No Street";
city = "No City";
state= "No State";
zipCode = "No Zip Code";
}
//intializes house with arguments
public JMUnit7House(int number, String street, String city, String state, String zipCode)
{
this.number = number;
this.street = street;
this.city = city;
this.state = state;
this.zipCode = zipCode;
}
public int setNumber(int number)
{
return number;
}
public String setStreet(String street)
{
return street;
}
public String setCity(String city)
{
return city;
}
public String setState(String state)
{
return state;
}
public String setZipCode(String zipCode)
{
return zipCode;
}
//function to print
public void print()
{
String info=String.format("House: %d\n", number);
info += String.format("Street: %s\n", street);
info += String.format("City: %s\n", city);
info += String.format("State: %s\n", state);
info += String.format("Zip: %s\n", zipCode);
System.out.println(info);
}
}
好的,我明白了。在下面:
house1.setNumber(number).setStreet(street)
.setCity(city).setState(state)
.setZipCode(zipCode).print();
因为 setNumber()
return 是一个 int
并且你在上面调用 setStreet()
,它不会工作。
如果您想以上述方式调用 return this
对象而不是在所需的方法中。
例如:
public int setNumber(int number)
{
//do something
return number;
}
会变成
public JMUnit7House setNumber(int number)
{
//do something
return this;
}
我搜索了几个不同的帖子,但没有找到我遇到的确切问题。我觉得我缺少的东西应该非常明显,但由于某种原因不能完全确定它一直在玩所有东西但不能完全理解它。如果有人能帮我一把,我将不胜感激。该程序旨在从文本文件中提取房屋信息并将其输出。 JMUnit7 文件是导师给我们的。 JMUnit7House 文件是我的作品。提前致谢。
package jmunit7;
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
/**
*
* @author Xephus
*/
public class JMUnit7 {
/**
* @param args the command line arguments
* @throws java.lang.Exception
*/
public static void main(String[] args) throws Exception
{
Scanner stdIn = new Scanner(System.in);
Scanner stdInFile = new Scanner(new
File("JMUnit7House.txt"));
JMUnit7House house1, house2; //New houses
//Create house 1 using default constructor
house1 = new JMUnit7House();
house1.print(); //print house 1 with default values
String street, city, state, zipCode;
int number;
System.out.println("Importing Number.");
number = stdInFile.nextInt();
stdInFile.nextLine();
System.out.println("Importing Street.");
street = stdInFile.nextLine();
System.out.println("Importing City.");
city = stdInFile.nextLine();
System.out.println("Importing State.");
state = stdInFile.nextLine();
System.out.println("Importing ZipCode.");
zipCode = stdInFile.nextLine();
System.out.println();
//use method call chaining to set values
//and print results for house 1
house1.setNumber(number).setStreet(street)
.setCity(city).setState(state)
.setZipCode(zipCode).print();
System.out.println("Importing Number.");
number = stdInFile.nextInt();
stdInFile.nextLine();
System.out.println("Importing Street.");
street = stdInFile.nextLine();
System.out.println("Importing City.");
city = stdInFile.nextLine();
System.out.println("Importing State.");
state = stdInFile.nextLine();
System.out.println("Importing ZipCode.");
zipCode = stdInFile.nextLine();
System.out.println();
//create house 2 using 5 parameter constructor
house2 = new JMUnit7House(number,
street, city, state, zipCode);
//print house 2
house2.print();
}
}
我的代码如下,我收到了错误的符号类型错误,它是:线程异常 "main" java.lang.RuntimeException:无法编译的源代码 - 错误的符号类型:.setCity.setState.setZipCode.print 在 jmunit7 .JMUnit7.main(JMUnit7.java:49) 49 是 house1.setNumber 行。
public class JMUnit7House {
private int number;
private String street;
private String city;
private String state;
private String zipCode;
public JMUnit7House()
{
number = 0;
street = "No Street";
city = "No City";
state= "No State";
zipCode = "No Zip Code";
}
//intializes house with arguments
public JMUnit7House(int number, String street, String city, String state, String zipCode)
{
this.number = number;
this.street = street;
this.city = city;
this.state = state;
this.zipCode = zipCode;
}
public int setNumber(int number)
{
return number;
}
public String setStreet(String street)
{
return street;
}
public String setCity(String city)
{
return city;
}
public String setState(String state)
{
return state;
}
public String setZipCode(String zipCode)
{
return zipCode;
}
//function to print
public void print()
{
String info=String.format("House: %d\n", number);
info += String.format("Street: %s\n", street);
info += String.format("City: %s\n", city);
info += String.format("State: %s\n", state);
info += String.format("Zip: %s\n", zipCode);
System.out.println(info);
}
}
好的,我明白了。在下面:
house1.setNumber(number).setStreet(street)
.setCity(city).setState(state)
.setZipCode(zipCode).print();
因为 setNumber()
return 是一个 int
并且你在上面调用 setStreet()
,它不会工作。
如果您想以上述方式调用 return this
对象而不是在所需的方法中。
例如:
public int setNumber(int number)
{
//do something
return number;
}
会变成
public JMUnit7House setNumber(int number)
{
//do something
return this;
}