No suitable constructor found for

Quando compilo a classe abaixo aparece a msg:

SearchName.java:60: error: no suitable constructor found for SearchName(String,S
tring,String)
alist.add(new SearchName(Used, A
vailable,Use));
^
constructor SearchName.SearchName(String,String) is not applicable
(actual and formal argument lists differ in length)
constructor SearchName.SearchName() is not applicable
(actual and formal argument lists differ in length)
SearchName.java:61: error: incompatible types
for (SearchName s : alist) {
^
required: SearchName
found: Object
SearchName.java:62: error: cannot find symbol
if (n.equals(s.getUse())
) {
^
symbol: method getUse()
location: variable s of type SearchName
SearchName.java:64: error: cannot find symbol
System.out.print
(s.getUse() + " ");

^
symbol: method getUse()
location: variable s of type SearchName
Note: SearchName.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
4 errors

[code]import java.io.;
import java.awt.
;
import java.util.;
import javax.swing.
;
import java.awt.event.*;

public class SearchName extends JFrame {
static String name;
static String age;

    public SearchName() {
    }

    public SearchName(String name, String age) {
            this.name = name;
            this.age = age;
    }

    public String getName() {
            return name;
    }

    public String getAge() {
            return age;
    }

    public static void main(String[] args) {
            SearchName search = new SearchName();
            JButton button = new JButton("Search");
            JPanel panel = new JPanel();
            panel.add(button);
            search.add(panel);
            search.setSize(300, 60);
            search.setVisible(true);
            ActionListener actionListener = new ActionListener() {
                    public void actionPerformed(ActionEvent actionEvent) {
                            String n = JOptionPane.showInputDialog(null, "Enter name");
                            try {
                                    FileInputStream fstream = new FileInputStream(
                                                   "C:\\Users\\mariachi.txt");
                                    DataInputStream in = new DataInputStream(fstream);
                                    BufferedReader br = new BufferedReader(
                                                    new InputStreamReader(in));
                                    String strLine;
                                    ArrayList list = new ArrayList();
                                    while ((strLine = br.readLine()) != null) {
                                            list.add(strLine);
                                    }
                                    Iterator itr;
                                    for (itr = list.iterator(); itr.hasNext();) {
                                            String str = itr.next().toString();
                                            String[] splitSt = str.split(" ");
                                            String Used = "", Available = "", Use = "";
                                            for (int i = 0; i < splitSt.length; i++) {
                                                    Used = splitSt[0];
                                                    Available = splitSt[1];
                                                    Use = splitSt[2];
                                            }
                                            ArrayList alist = new ArrayList();
                                            alist.add(new SearchName(Used, Available,Use));
                                            for (SearchName s : alist) {
                                                    if (n.equals(s.getUse())) {
                                                            System.out.println("Use ");
                                                            System.out.print(s.getUse() + " ");
                                                    }
                                            }
                                    }
                            } catch (Exception e) {
                            }
                    }
            };

            button.addActionListener(actionListener);
    }

}[/code]

O que há de errado com o código?

Obrigado.

Você não tem um construtor na classe SearchName que receba 3 Strings como argumento, porém está tentando instancia um objeto dessa forma.

[quote=Rodrigo Sasaki]Você não tem um construtor na classe SearchName que receba 3 Strings como argumento, porém está tentando instancia um objeto dessa forma.

[/quote]

Sou novo em Java, pode me ajudar a fazer um construtor?

obrigado.

Você já definiu 2 construtores na classe. [code]public SearchName() {

}

public SearchName(String name, String age) {
this.name = name;
this.age = age;
} [/code]

[quote=Rodrigo Sasaki]Você já definiu 2 construtores na classe. [code]public SearchName() {

}

public SearchName(String name, String age) {
this.name = name;
this.age = age;
} [/code][/quote]

Fiz a correção no construtor, porem continua dando erro. Segue erro abaixo:

SearchName.java:7: error: class SearchAvailable is public, should be declared in
a file named SearchAvailable.java
public class SearchAvailable extends JFrame {
^
SearchName.java:66: error: no suitable constructor found for SearchAvailable(Str
ing,String,String)
alist.add(new SearchAvailable(Us
ed, Available,Use));
^
constructor SearchAvailable.SearchAvailable(String,String) is not applicable

  (actual and formal argument lists differ in length)
constructor SearchAvailable.SearchAvailable() is not applicable
  (actual and formal argument lists differ in length)

SearchName.java:67: error: incompatible types
for (SearchAvailable s : alist)
{
^
required: SearchAvailable
found: Object
Note: SearchName.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 errors

Posta ai a classe que utiliza esta classe SearchName , pois conforme mostrado no log, você está tentando passar 3 ARGUMENTOS para o construtor, porém na classe SearchName não existe construtor que aceite 3 parâmetros(String,String,String) , o unico que aceita parametros, é o segundo e ele aceita apenas 2(String, String).

Att.

[quote=Fellipex]Posta ai a classe que utiliza esta classe SearchName , pois conforme mostrado no log, você está tentando passar 3 ARGUMENTOS para o construtor, porém na classe SearchName não existe construtor que aceite 3 parâmetros(String,String,String) , o unico que aceita parametros, é o segundo e ele aceita apenas 2(String, String).

Att.[/quote]

Vou postar novamente o código…

[code]import java.io.;
import java.awt.
;
import java.util.;
import javax.swing.
;
import java.awt.event.*;

public class SearchAvailable extends JFrame {
static String Available;
static String Used;
static String Use;

    public SearchAvailable() {
    }

    public SearchAvailable(String Available, String Used) {
            this.Available = Available;
            this.Used = Used;
			this.Use = Use;
    }

    public String getAvailable() {
            return Available;
    }

    public String getUsed() {
            return Used;
    }
	
	public String getUse(){
			return Use;
	}

    public static void main(String[] args) {
            SearchAvailable search = new SearchAvailable();
            JButton button = new JButton("Search");
            JPanel panel = new JPanel();
            panel.add(button);
            search.add(panel);
            search.setSize(300, 60);
            search.setVisible(true);
            ActionListener actionListener = new ActionListener() {
                    public void actionPerformed(ActionEvent actionEvent) {
                            String n = JOptionPane.showInputDialog(null, "Enter Available");
                            try {
                                    FileInputStream fstream = new FileInputStream(
                                                   "C:\\Users\\mariachi.txt");
                                    DataInputStream in = new DataInputStream(fstream);
                                    BufferedReader br = new BufferedReader(
                                                    new InputStreamReader(in));
                                    String strLine;
                                    ArrayList list = new ArrayList();
                                    while ((strLine = br.readLine()) != null) {
                                            list.add(strLine);
                                    }
                                    Iterator itr;
                                    for (itr = list.iterator(); itr.hasNext();) {
                                            String str = itr.next().toString();
                                            String[] splitSt = str.split(" ");
                                            String Used = "", Available = "", Use = "";
                                            for (int i = 0; i < splitSt.length; i++) {
                                                    Used = splitSt[0];
                                                    Available = splitSt[1];
                                                    Use = splitSt[2];
                                            }
                                            ArrayList alist = new ArrayList();
                                            alist.add(new SearchAvailable(Used, Available,Use));
                                            for (SearchAvailable s : alist) {
                                                    if (n.equals(s.getUse())) {
                                                            System.out.println("Use ");
                                                            System.out.print(s.getUse() + " ");
                                                    }
                                            }
                                    }
                            } catch (Exception e) {
                            }
                    }
            };

            button.addActionListener(actionListener);
    }

}[/code]

Fácil de veer o erro,

 alist.add(new SearchAvailable(Used, Available,Use));  
// Aonde que searchAvailable aceita 3 parametros, como Use, Avaliable, Use ????
// No construtor de SearchAvailable só existe String Available, String Used, ou seja 2 parametros

Você esqueceu de colocar mais um parametro no construtor para o String Use


 public SearchAvailable(String available, String used, String use) {  
                this.available= available;  
                this.used= used;  
                this.use= use;  
        } 

Obs: Nome de variavéis sempre iniciando minuscula.

Att

[quote=Fellipex]Posta ai a classe que utiliza esta classe SearchName , pois conforme mostrado no log, você está tentando passar 3 ARGUMENTOS para o construtor, porém na classe SearchName não existe construtor que aceite 3 parâmetros(String,String,String) , o unico que aceita parametros, é o segundo e ele aceita apenas 2(String, String).

Att.[/quote]

Estava dando uma olhada no código e consegui corrigir algumas coisas, porem agora apresentou novos erros. vou postar o código e o erro.

[code]import java.io.;
import java.awt.
;
import java.util.;
import javax.swing.
;
import java.awt.event.*;

public class SearchName extends JFrame {
static String Available;
static String Used;
static String Use;

    public SearchName() {
    }

    public SearchName(String Available, String Used, String Use) {
            this.Available = Available;
            this.Used = Used;
			this.Use = Use;
    }

    public String getAvailable() {
            return Available;
    }

    public String getUsed() {
            return Used;
    }
	
	public String getUse(){
			return Use;
	}

    public static void main(String[] args) {
            SearchName search = new SearchName();
            JButton button = new JButton("Search");
            JPanel panel = new JPanel();
            panel.add(button);
            search.add(panel);
            search.setSize(300, 60);
            search.setVisible(true);
            ActionListener actionListener = new ActionListener() {
                    public void actionPerformed(ActionEvent actionEvent) {
                            String n = JOptionPane.showInputDialog(null, "Enter Available");
                            try {
                                    FileInputStream fstream = new FileInputStream(
                                                   "C:\\Users\\mariachi.txt");
                                    DataInputStream in = new DataInputStream(fstream);
                                    BufferedReader br = new BufferedReader(
                                                    new InputStreamReader(in));
                                    String strLine;
                                    ArrayList list = new ArrayList();
                                    while ((strLine = br.readLine()) != null) {
                                            list.add(strLine);
                                    }
                                    Iterator itr;
                                    for (itr = list.iterator(); itr.hasNext();) {
                                            String str = itr.next().toString();
                                            String[] splitSt = str.split(" ");
                                            String Used = "", Available = "", Use = "";
                                            for (int i = 0; i < splitSt.length; i++) {
                                                    Used = splitSt[0];
                                                    Available = splitSt[1];
                                                    Use = splitSt[2];
                                            }
                                            ArrayList alist = new ArrayList();
                                            alist.add(new SearchName(Used, Available,Use));
                                            for (SearchName s : alist) {
                                                    if (n.equals(s.getUse())) {
                                                            System.out.println("Use ");
                                                            System.out.print(s.getUse() + " ");
                                                    }
                                            }
                                    }
                            } catch (Exception e) {
                            }
                    }
            };

            button.addActionListener(actionListener);
    }

}[/code]

SearchName.java:67: error: incompatible types
for (SearchName s : alist) {
^
required: SearchName
found: Object
Note: SearchName.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

altere isso

ArrayList alist = new ArrayList();  

para isso

//Cast do ArrayList para o tipo SearchName.
List<SearchName> alist = new ArrayList<SearchName>();  

Obs: Porque há cada post sua classe muda de SearchName para SearchAvailiable e vice-versa?

[quote=Fellipex]altere isso

ArrayList alist = new ArrayList();  

para isso

//Cast do ArrayList para o tipo SearchName.
List<SearchName> alist = new ArrayList<SearchName>();  

Obs: Porque há cada post sua classe muda de SearchName para SearchAvailiable e vice-versa?[/quote]

Eu fiz a alteração, conforme solicitado e deu erro novamente.

SearchName.java:65: error: reference to List is ambiguous, both interface java.u
til.List in java.util and class java.awt.List in java.awt match
List alist = new Arr
ayList();
^
Note: SearchName.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

Você tem que apagar o import referente ao awt
Como visto no seu código voce ta importando

import java.awt.*;  
import java.util.*; 

Apague este ,

import java.awt.*;  

pois, a List que você quer usar é do pacote Util e nao do AWT, o log está afirmando ambiguidade na declaração da List. Apague o que eu mencionei, que provavelmente resolverá o problema.

Att

[quote=Fellipex]Você tem que apagar o import referente ao awt
Como visto no seu código voce ta importando

import java.awt.*;  
import java.util.*; 

Apague este ,

import java.awt.*;  

pois, a List que você quer usar é do pacote Util e nao do AWT, o log está afirmando ambiguidade na declaração da List. Apague o que eu mencionei, que provavelmente resolverá o problema.

Att[/quote]

Recompilei sem o awt e na me pediu para complilar utilizando o -xlint. Utilizei o -xlint para recompilar e me informou mais erros. Segue abaixo.

SearchName.java:15: warning: [static] static variable should be qualified by typ
e name, SearchName, instead of by an expression
this.Available = Available;
^
SearchName.java:16: warning: [static] static variable should be qualified by typ
e name, SearchName, instead of by an expression
this.Used = Used;
^
SearchName.java:17: warning: [static] static variable should be qualified by typ
e name, SearchName, instead of by an expression
this.Use = Use;
^
SearchName.java:52: warning: [unchecked] unchecked call to add(E) as a member of
the raw type ArrayList
list.add(strLine);
^
where E is a type-variable:
E extends Object declared in class ArrayList
SearchName.java:6: warning: [serial] serializable class SearchName has no defini
tion of serialVersionUID
public class SearchName extends JFrame {
^
5 warnings

Olá, o erro está na if da servlet Enviadados é os long dela, eu troquei todos por string,tanto nela como na classe Clientes,
porém aparece outro erro nessa linha:

c = new Clientes(null, request.getParameter("nome")

aparece o erro " no suitable constructor found for Clientes…"