Alguém pode me ajudar a pegar o proximo objeto de uma lista??
Tentei o seguinte…
mp = (meuPet) pets.listIterator(pets.indexOf(mp)).next();
mas não deu, ele pegou o atual objeto e não o próximo…
Alguém pode me ajudar a pegar o proximo objeto de uma lista??
Tentei o seguinte…
mp = (meuPet) pets.listIterator(pets.indexOf(mp)).next();
mas não deu, ele pegou o atual objeto e não o próximo…
Olá, Claudete!
Um iterador não é apropriado para se recuperar um elemento específico em uma lista. Para isso, a própria lista costuma ter métodos próprios para recuperar um elemento específico.
Tente fazer assim:
meuPet nextMp;
int mpIndex = pets.indexOf(mp);
if(mpIndex >= 0 && mpIndex < pets.size() - 1)
nextMp = pets.get(mpIndex + 1);
else //Não há um próximo elemento
nextMp = null;
Mas eu estou curioso quanto a necessidade de toda essa operação… Você poderia por gentileza postar o código da classe meuPet (Aliás, é uma boa prática de programação em Java iniciar o nome das classes com letra maiúscula)?
Valeu!! Funcionou... Brigadão!!! :D
Mas não entendi pq minha classe começa com letra maiúscula... o nome dela é meuPet... 'm' minúsculo... bom, mas aí vai seu código... é só pra teste, pra ver como funciona o hibernate annotations... pra ver qual o melhor framework... estudei um pouco o hibernate, mas pra fugir dos arquivos xml q ele necessita, então estudei o annotations, depois vou estudar outros... se vc tiver alguma opinião, gostaria de ouvir...
Na minha aplicação, tens uns botão pra ir pro próximo e pro anterior... por isso precisava procurar o próximo...
package meuTeste;
import java.io.Serializable;
//import javax.persistence.Entity;
//import javax.persistence.GeneratedValue;
//import javax.persistence.GenerationType;
//import javax.persistence.Id;
import javax.persistence.*;
@Entity
@Table(name="pet")//, uniqueConstraints = {@UniqueConstraint(columnNames={"nome", "dono","sexo"})})
public class meuPet implements Serializable {
@Id
@Column(name="codigo")
private Long id;
private String Nome;
private String dono;
private char sexo;
/** Creates a new instance of meuPet */
public meuPet() {
}
/**
* Define o id deste meuPet.
* @return o id
*/
public Long getId() {
return this.id;
}
/**
* Define o id deste meuPet para o valor especificado.
* @param id o novo id
*/
public void setId(Long id) {
this.id = id;
}
/**
* Retorna um valor de código hash para o objeto. Esta implementação computa
* um valor de código hash baseado nos campos id deste objeto.
* @return um valor de código hash para este objeto.
*/
@Override
public int hashCode() {
int hash = 0;
hash += (this.id != null ? this.id.hashCode() : 0);
return hash;
}
/**
* Determina se outro objeto é igual a este meuPet. O resultado é
* <code>true</code> se e somente se o argumento não for nulo e for um objeto meuPet o qual
* tem o mesmo valor para o campo id como este objeto.
* @param object o objeto de referência com o qual comparar
* @return <code>true</code> se este objeto é o mesmo como o argumento;
* <code>false</code> caso contrário.
*/
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof meuPet)) {
return false;
}
meuPet other = (meuPet)object;
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
return true;
}
/**
* Retorna uma representação literal deste objeto. Esta implementação cria
* uma representação baseada nos campos id.
* @return uma representação literal deste objeto.
*/
@Override
public String toString() {
return "meuTeste.meuPet[id=" + id + "]";
}
public void setNome(String nm){
Nome = nm;
}
public String getNome(){
return Nome;
}
public void setDono(String d){
dono = d;
}
public String getDono(){
return dono;
}
public void setSexo(char s){
sexo = s;
}
public char getSexo(){
return sexo;
}
}