Olá pessoal como vai
Gostaria de saber o que significa esta Instrução?
Object obj = (Object) FindValue(Object);
A Instrução Object obj = (Object) significa um construtor esperando um valor de retorno?
if(true) Como eu faço esse construtor?
Desde Já Obrigado!!!
Vamos do inicio.
Construtor é o que você define na classe.
public class Pessoa{
private String nome;
private Date nascimento;
public Pessoa(){ //construtor padrão
}
public Pessoa(String nome){ //Construtor com nome como paramentro
this.nome=nome;
}
}
Agora para explicar essa instrução:
Object obj = (Object) FindValue(Object);
Digamos que tenha a classe Ator e outra classe chamada Diretor, ambas sendo Pessoas:
public class Ator extends Pessoa{
private List<String> papeis;
}
public class Diretor extends Pessoa{ }
Agora digamos que você tenha feito uma pesquisa de um Ator em um método que retorna objetos do tipo Pessoa.
Você pode trabalhar apenas com um objeto do tipo Pessoa, mas e se precisar acessar algo que só ator tem, como papeis? Para isso terá que fazer um Cast
[code]Ator ator; //Declarou objeto do tipo Ator
FindValue(“valor”); // Retorna um objeto do tipo Pessoa
Ator ator = (Ator)FindValue(“valor”); //Pesquisa uma pessoa e transforma em um Ator
[/code]
Lógico que isso pode trazer varios problemas. Se vier um Diretor e você tentar fazer o cast para Ator, irá estourar um erro. Para evitar que isso ocorra, deve-se usar o instanceof
Pessoa pessoa = FindValue("valor"); //Pesquisa uma pessoa e passa para um objeto do tipo Pessoa
if(pessoa instanceof Ator) // se a pessoa for um Ator, então está ok
ator = pessoa;
Resumindo isso tudo:
[code]
public Pessoa(){ //construtor da classe Pessoa
}
Ator ator = (Ator)pessoa; //cast de Pessoa para Ator[/code]