线程" main"中的例外情况java.lang.UnsupportedOperationException:尚不支持

时间:2015-02-12 17:49:06

标签: java

所以前几天我打开了一个问题,我认为我能够解决问题,但我知道发生了什么,但现在我遇到了一个新问题。我是编程新手,这是我正在上课的。我正在尝试创建一个使用继承,多态和集合的联系人列表。我需要一个存储两种联系人的联系人列表:商业和个人。我需要提示1添加联系人然后询问1个人或2个人。提示2将允许用户显示所选联系人的输出,提示3将退出。

我构建了以下类和子类。我很确定这些类是正确构建的但是在添加任何类型的联系人之后,当我选择2以便查看我在线程中获得异常时#34; main" java.lang.UnsupportedOperationException:尚不支持。对此有任何帮助都很棒。

我为长篇大论道歉,但我认为我应该展示一切。

这是我的主要课程:

package contactlist;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;

public class ContactList {

/*ArrayList<List.Contact> contactlist;*/

List<Contact> contactlist = new ArrayList<>();


/* Contact contact; */
private int top = 0;

public static void main(String[] args) throws IOException {
    /* Contact contact;
    contact = new Contact();
    List.Contact c;
    c = contact; */
    ContactList list = new ContactList();

    BufferedReader keyIn;
    keyIn = new BufferedReader(new InputStreamReader(System.in));
    String choose = "";
    while (true) {

        System.out.println("\n[1] Add contact");
        System.out.println("[2] View all contacts");
        System.out.println("[3] Quit");
        System.out.print("Choose : ");

        try {
            choose = keyIn.readLine();
        } catch (IOException e) {

            System.out.println("Error");
        }
        switch (choose) {
            case "1":
                list.addContact();
                break;
            case "2":
                list.viewContacts();
                break;
            case "3":
                System.exit(0);
                break;
            default:
                System.out.println("Error");
                break;
         }

       }
    }

public ContactList() {
    this.contactlist = new ArrayList<>();
}

public void addContact() throws IOException {
    BufferedReader keyIn;
    keyIn = new BufferedReader(new InputStreamReader(System.in));
    String firstName;
    String lastName;
    String address;
    String email;
    String phone;
    String jobTitle;
    String organization;
    String dateOfBirth;

    Scanner input = new Scanner(System.in);
    System.out.println("Please enter Specify the contact type (1) Personal
    or (2) Business: ");
    int contactType = input.nextInt();
    if (contactType == 1) {
        System.out.print("First Name: ");
        firstName = keyIn.readLine();
        System.out.print("Last Name: ");
        lastName = keyIn.readLine();
        System.out.print("Address: ");
        address = keyIn.readLine();
        System.out.print("E-mail address: ");
        email = keyIn.readLine();
        System.out.print("Phone number: ");
        phone = keyIn.readLine();
        System.out.print("Date of Birth (MM/DD/YYYY): ");
        dateOfBirth = keyIn.readLine();

        PersonalContact entry;
        entry = new PersonalContact(firstName, lastName, address, email, 
        phone, dateOfBirth);
        contactlist.add(entry);
        top++;
        try {
            entry.write();
        } catch (Exception e) {
        }

    } else if (contactType == 2) {
        System.out.print("First Name: ");
        firstName = keyIn.readLine();
        System.out.print("Last Name: ");
        lastName = keyIn.readLine();
        System.out.print("Address: ");
        address = keyIn.readLine();
        System.out.print("E-mail address: ");
        email = keyIn.readLine();
        System.out.print("Phone number: ");
        phone = keyIn.readLine();
        System.out.print("Job Title: ");
        jobTitle = keyIn.readLine();
        System.out.print("Organization: ");
        organization = keyIn.readLine();

        BusinessContact entry;
        entry = new BusinessContact(firstName, lastName, address, email, 
        phone, jobTitle, organization);
        contactlist.add(entry);
        top++;
        try {
            entry.write();
        } catch (Exception e) {
        }

    }

}

public void view() {
for (int index = 0; index < top; index++) {
    contactlist.get(index).viewContacts();
    }
    }

private void viewContacts() {
    throw new UnsupportedOperationException("Not supported yet."); //To 
change body of generated methods, choose Tools | Templates.
}
}

联系班级:

package contactlist;

    public class Contact {
    private String firstName;
    private String lastName;
    private String address;
    private String email;
    private String phone;

    public Contact(String firstName, String lastName, String address, String 
    email, String phone){
        this.firstName = firstName;
        this.lastName = lastName;
        this.address = address;
        this.email = email;
        this.phone = phone;
    }

public String getfirstName() {
    return this.firstName;
}

public String setfirstName(){
    return (this.firstName = firstName);
}

public String getlastName() {
    return this.lastName;
}

public String setlastName(){
    return (this.lastName = lastName);
}

public String getAddress() {
    return this.address;
}

public String setAddress(){
    return (this.address = address);
}

public String getEmail() {
    return this.email;
}

public String setEmail(){
    return (this.email = email);
}

public String getPhone() {
    return this.phone;
}

public String setPhone(){
    return (this.phone = phone);
}

String getFirstName() {
    return firstName;
}

String getLastName() {
    return lastName;
}

public void viewContacts() {
System.out.println(this.getfirstName());
System.out.println(this.getlastName());
System.out.println(this.getAddress());
System.out.println(this.getEmail());
System.out.println(this.getPhone());
}

}

业务联系人子类:

package contactlist;

    public class BusinessContact extends Contact {

    private String jobTitle;
    private String organization;

    public BusinessContact(String firstName, String lastName, String 
    address, String email, String phone, String jobTitle, String 
    organization) { 
    super(firstName, lastName, address, email, phone);
    this.jobTitle = jobTitle;
    this.organization = organization;
}

public String getJobTitle() {
    return jobTitle;
}

public void setJobTitle(String jobTitle) {
    this.jobTitle = jobTitle;
}

public String getOrganization() {
    return organization;
}

public void setOrganization(String organization) {
    this.organization = organization;
}

void write() {
    throw new UnsupportedOperationException("Not supported yet."); //To 
    change body of generated methods, choose Tools | Templates. 
}

public void viewContacts() {
super.viewContacts();
System.out.println(this.getOrganization());
System.out.println(this.getJobTitle());
}
}

Personal Contact子类:

package contactlist;

    public class PersonalContact extends Contact {

    private String dateOfBirth;

    public PersonalContact(String firstName, String lastName, String
    address, String email, String phone, String dateOfBirth) {
    super(firstName, lastName, address, email, phone);
    this.dateOfBirth = dateOfBirth;
}

public String getdateOfBirth() {
    return dateOfBirth;
}

public void setdateOfBirth(String dateOfBirth){
    this.dateOfBirth = dateOfBirth;
}


void write() {
    throw new UnsupportedOperationException("Not supported yet."); //To
    change body of generated methods, choose Tools | Templates. 
}

public void viewContacts() {
super.viewContacts();
System.out.println(this.dateOfBirth);
}
}

1 个答案:

答案 0 :(得分:0)

viewContacts()方法的实现除了抛出此异常外什么都不做。如果您想要不同的行为,则必须实施它。例如,一个简单的实现:

private void viewContacts() {
    System.out.println (contactlist);
}