gpt4 book ai didi

java - 尝试调用 showArrayList 方法

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:26 24 4
gpt4 key购买 nike

我正在尝试调用 showArrayList方法,但它一直给我 ContactList 无法转换为 java.util.ArrayList<Contact> 。我究竟做错了什么?到目前为止我有这个:

public class ControlPanel extends JPanel implements ActionListener
{
// Fields (instance variables/attributes)
private JLabel phoneNumberLabel; // a reference to the phoneNumberLabel that is displayed in the PhoneNumberDisplayPanel.

private Contact nameAndNumber; // Holds the name and number for a phone Contact.
// Contact lists;
private ContactList contacts; // Encapsulates a list of saved contacts, ie.e phone Contacts.
private ContactList callsMade; // Encapsulates a list of calls made, i.e. phone Contacts.

private void findNumber( )
{
if(nameLabel.getText( ).equals(contacts.searchByName(nameLabel.getText())))
showArrayList(contacts,nameLabel.getText());
else
showArrayList(contacts, "");
}

showArrayList方法是:

public void showArrayList( ArrayList<Contact> list, String title ) 
{
int x = 410;
int y = 445;
int width = 350;
int height = 200;
boolean disableCloseButton = false;
Window newWindow = new Window( title, x, y, width, height, Color.RED, disableCloseButton );
{
newWindow.println( "No contact information saved" );
}
else
{
for ( Contact c: list )
{
newWindow.println( c.toString() );
}
}

现在我这样做了并且它编译了:

private void findNumber( )
{
ArrayList<Contact> list = new ArrayList<Contact>();
if(nameLabel.getText().equals(contacts.searchByName(nameLabel.getText())))
showArrayList(list,nameLabel.getText());
else
showArrayList(list, "");
}

我的 ContactList 类:

public class ContactList
{
private ArrayList<Contact> list;

/**
* Constructor for a ContactList, to initialize the list from file.
*
* @param fileName a reference to an existing file
* @param window a reference to an existing window to display the list contacts
*/
public ContactList( String fileName, Window window )
{
list = new ArrayList<Contact>( );

File file = new File( fileName );

// Remark. A file needs to have been written, before it can be read.
if (file.exists())
{
try
{
Scanner fileReader = new Scanner( file );
readFile( fileReader );
window.print( this.toString () );
}
catch( FileNotFoundException error ) // could not find file
{
System.out.println( "File not found " );
}
}
}

/********************************************************************
* Searches the list for a particular contact,
* comparing this name and number (in lower case)
* with the contact name and number (in lower case).
*
* @param contact
* @return returns true if the contact is found, otherwise false
*/
public boolean found( Contact contact )
{
for(Contact c: list){
if(c == contact){
return true;
}
}
return false;

}

/******************************************************************
* Adds one contact to the list
*
* @param contact
*/
public void add( Contact contact )
{
list.add(contact);


}

/******************************************************************
* searches the list for each name that contains the specified substring
*
* @param substring
* @return returns the result as an ArrayList
*/
public ArrayList<Contact> searchByName(String substring)
{
ArrayList<Contact> l = new ArrayList<Contact>( );
for(Contact c: list){
if(c.getName() == substring){
l.add(c);
}
}
return l;
}

最佳答案

ContactList不扩展ArrayList<Contact>所以你不能将它作为参数传递给期望 ArrayList<Contact> 的方法。也许你可以有一个getterContactList暴露list这样您就可以将其传递给您的 showArrayList方法,或者您可以实现 showArrayList接受 ContactList 的方法输入argument .

关于java - 尝试调用 showArrayList 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com