2016-12-04 4 views
0

Я искал несколько разных сообщений, но не нашел точного вопроса, который у меня есть. Я чувствую, что то, что мне не хватает, должно быть очень очевидным, но по какой-то причине не может его полностью уловить, играя со всем, но не могу его получить. Если кто-то может дать мне руку, мы будем очень признательны. Программа предназначена для получения информации о доме из текстового файла и вывода его. файл 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(); 
    } 
} 

Мой код выглядит следующим образом им получать и ошибочный тип ошибки сим, который: Исключение в потоке «главный» java.lang.RuntimeException: Uncompilable исходный код - Ошибочный тип SYM: .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); 
    } 
} 
+0

Если вы используете IDE, очистить все ошибки коды и перестроить проект – GurV

+0

Ошибка коды в этой строке на IDE является INT не может быть dereferanced. –

+0

у которого строка в коде точно? – GurV

ответ

0

Хорошо, я вижу проблему. В ниже:

house1.setNumber(number).setStreet(street) 
      .setCity(city).setState(state) 
      .setZipCode(zipCode).print(); 

Так, setNumber() возвращает int и вы вызываете setStreet() на том, что он не будет работать.

Если вы хотите совершать звонки вышеуказанным способом, верните this объект в требуемые методы. Для например .:

public int setNumber(int number) 
    { 
    //do something 
    return number; 
    } 

станет

public JMUnit7House setNumber(int number) 
    { 
    //do something 
    return this; 
    } 
+0

отдельная проблема по какой-то причине ее печать первого дома как пустой дом, а не назначение их переменной из .txt-файла, второй дом отображается, как ожидалось. –

Смежные вопросы