Metodo contrutor

5 respostas
java
A
olá pessoa!

Estou tentando criar essa lista que trará alguns objetos do Tipo Pessoa

`

public List getPessoas(){

List pessoas = new ArrayList();

pessoas.add(new Pessoa(“Anderson”,8.700,“Admin”,"[email removido]",new Date(),Sexo.Masculino,Cargo.DESENVOLVEDOR));

pessoas.add(new Pessoa(“Joana”,8.700,“Admin”,"[email removido]",new Date(),Sexo.Feminino,Cargo.DESENVOLVEDOR));

return pessoas;

}

`

Porém aparece esse erro

The constructor Pessoa(String, double, String, String, Date, Sexo, Cargo) is undefined

Alguém sabe o que pode ser?

5 Respostas

L

Existe algum construtor que recebe esses parâmetros na ordem informada no erro?

F

Posta o codigo da classe ai tbm

A

Classe Pessoa:

import java.io.Serializable;
import java.util.Date;

public class Pessoa implements Serializable {
	private static final long serialVersionUID = 1L;
	
	private Long id;
	private String nome;
	private double salario;
	private String funcoes;
	private String email;
	private Date dataNascimento;
	private Sexo sexo;
	private Cargo cargo;
	
	public Pessoa() {
		
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public double getSalario() {
		return salario;
	}

	public void setSalario(double salario) {
		this.salario = salario;
	}

	public String getFuncoes() {
		return funcoes;
	}

	public void setFuncoes(String funcoes) {
		this.funcoes = funcoes;
	}

	public String getEmail() {
		return email;
	}

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

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public Sexo getSexo() {
		return sexo;
	}

	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}

	public Cargo getCargo() {
		return cargo;
	}

	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Pessoa other = (Pessoa) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Pessoa [id=" + id + ", nome=" + nome + ", salario=" + salario + ", funcoes=" + funcoes + ", email="
				+ email + ", dataNascimento=" + dataNascimento + ", sexo=" + sexo + ", cargo=" + cargo + "]";
	}
}
A

Classe PessoaMB

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;

import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.inject.Named;

@Named
@SessionScoped
public class PessoaMB implements Serializable {
	private static final long serialVersionUID = 1L;
	
	private Pessoa pessoa = new Pessoa();//Digo que a classe Pessoa.java virou uma propriedade
	
	public PessoaMB(){}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}
	
	public void validarEmail(FacesContext context, UIComponent toValidate,Object value){
		String email = (String) value;
		if (email.indexOf('@') == -1){
			((UIInput)toValidate).setValid(false);
			FacesMessage message = new FacesMessage("O email não é valido");
			context.addMessage(toValidate.getClientId(context),message);
		}
	}

	public Collection<SelectItem> getSexos(){
		Collection<SelectItem> itens = new ArrayList<SelectItem>();
		for(Sexo enums : Sexo.values()){
			itens.add(new SelectItem(enums, enums.name()));
		}
		return itens;
	}
	
	public Collection<SelectItem> getCagos(){
		Collection<SelectItem> itens = new ArrayList<SelectItem>();
		for(Cargo enums : Cargo.values()){
			itens.add(new SelectItem(enums, enums.name()));
		}
		return itens;
	}
	
	public void salvar(){
		System.out.println(this.pessoa);
	}
	
	public void novo(){
		pessoa = new Pessoa();
	}
	
	public List<Pessoa> getPessoas(){
		List<Pessoa> pessoas = new ArrayList<Pessoa>();
		pessoas.add(new Pessoa("Anderson",8.700,"Admin","[email removido]",new Date(),Sexo.Feminino,Cargo.DESENVOLVEDOR));
		pessoas.add(new Pessoa("Anderson",8.700,"Admin","[email removido]",new Date(),Sexo.Feminino,Cargo.DESENVOLVEDOR));
		return pessoas;
	}
}
M

Na sua classe Pessoa você só criou o construtor padrão.
Crie o método construtos como o lucastody mencionou.

public Pessoa(String nome, double salario, String funcoes, String email, Date dataNascimento, Sexo sexo, Cargo cargo){
	
	this.nome = nome;
	this.salario = salario;
	this.funcoes = funcoes;
	this.email = email;
	this.dataNascimento = dataNascimento;
	this.sexo = sexo;
	this.cargo = cargo;
}

Caso você queira que o objeto do tipo Pessoa seja criado sempre com esses parâmetros você pode apagar o método construtor vazio, para impedir que seja criado um objeto do tipo Pessoa sem passar os parâmetros.

Criado 20 de maio de 2016
Ultima resposta 21 de mai. de 2016
Respostas 5
Participantes 4