我无法使我的联系人列表程序正常工作。我有3类:main(),contact(),contactlist()。

我的主要问题是我想让main()打印一个菜单并让它控制导航。我很想在Contactlist()中编写一个方法,但是我想在main()中执行此任务。

我创建了一个基本的框架代码,在很多方面我都确定这是错误的。我的List界面遇到问题。

在ContactList中遇到错误:List<Contact> contacts;
在Contact.java中,getContactBylName方法也出现错误。

主要()

//Main class for contact list
public class Main {
   public static void main(String[] args) {

   }
}

联系()
import java.util.List;
import java.util.Scanner;

//Class implemented by ContactList
public class Contact implements ContactList {

String fName;
String lName;
String email;
String streetAdd;
String zipCode;

Scanner scan = new Scanner(System.in);

//Constructor
public Contact (String fName, String lName, String email, String streetAdd, String zipCode) {

}

//implementation for adding contact
public void addContact(Contact contact) {
    contacts.add(contact);
}
//implementation for printing contact list
public void printContacts(Contact contact) {

    }

//implementation for getting contact by last name
public void getContactBylName(String lName) {
    System.out.println("Enter a last name to search:");
    lName = scan.nextLine();

    if (ContactList.lName == lName) {
        return Contact;
        }

//implementation for getting contact by email
public void getContactByemail(String email) {
    System.out.println("Enter an email to search:");
    email = scan.nextLine();

    if (ContactList.email == email) {
        return Contact;
        }
}
public void getContactByzipCode(String zipCode) {

}
}

联系人列表()
//Class implementing list Contact
import java.util.List;

public interface ContactList {

 List<Contact> contacts;

 contacts = new ArrayList<Contact>();

 //method to add contact
void addContact(Contact contact);

//method to print contact list
void printContacts(Contact contact);

//method to get a contact by last name
void getContactBylName(String lName);

//method to get a contact by email address
void getContactByemail(String email);

//method to get all contacts in a zip code
void getContactByzipCode(String zipCode);
}

最佳答案

这就是问题:

public interface ContactList {
    List<Contact> contacts;
    ...
}

您不能在接口(interface)中声明字段(常量除外)。接口(interface)是API-由实现决定是否要以List<Contact>或其他方式存储数据。

另外,Contact不应实现ContactList-将“单个联系人”与“联系人集合”分开。您的界面也应该从每个“get”方法中返回一个Contact引用...所以它看起来像这样:
public interface ContactList {
    void addContact(Contact contact);
    void printContacts();
    Contact getContactByLastName(String lastName);
    Contact getContactByEmail(String email);
    Contact getContactByZipCode(String zipCode);
}

08-07 22:28