Duvida

Boa tarde, tenho uma dúvida:

imagina uma função

public List criarAlgumaCoisa(Objeto obj){
      List list = algumaOutraCoisaEspecializada(obj);
      for (int i = 0; i < list .size(); i++) {
           Object[] object = (Object[]) list .get(i);
	    obj = new Objeto ();
            obj.set...
       }
}

se eu quiser setar algo no novo obj que esta no antigo obj nao rola, soh se eu fizer assim:

public List criarAlgumaCoisa(Objeto obj){
      List list = algumaOutraCoisaEspecializada(obj);
      for (int i = 0; i < list .size(); i++) {
           Object[] object = (Object[]) list .get(i);
	    Objeto  obj2 = new Objeto ();
            obj2.set...
            obj2.setAlgo(obj.getAlgo());
       }
}

tentei utilizar o this, mas não tb nao deu, existe algum jeito?

Lembrando que eh soh uma duvida mesmo.

vlw

jovem,

foi meio confuso …rs!
mas para atribuir um valor de um objeto é assum mesmo.

oldObject.set(newObject.get());

“this” faz referencia ao atributo da Classe

Rola SIM !

O problema no seu código foi que no segundo trecho de código vc não declarou o objeto obj

No obj2, vc está setando com o valor do obj, mas ele não foi declarado.

O this é para vc acessar objetos ou variaveis que são atributos da classe. Então vc só conseguiria acessar this.obj se obj for atributo da classe.

Bom ! Eu não entendi qual é a sua duvida direito … mas acho que é isso. :?

opa, acho que ficou estranha minha explicação.

na assinatura do metodo tenho um objeto passado por parametro, dentro do metodo eu irei criar novos objetos do mesmo tipo.

so que eu estava criando somente dando um obj = new Objeto()
so que precisaria setar algum atributo vindo do objeto da assintura.

soh para ficar mais claro segue o codigo no qual tenho a duvida:
deste jeito não seta pq o ele esta pegando os atributos do novo objeto

public List<LancGerado> gerarLancGeradoResumoContas(LancGerado lancGerado){
		List<LancGerado> lancamentos = new ArrayList<LancGerado>();
		try {
			lancGerado.setFlStatus(LancGerado.FL_CREDITO);
			List listCredito = this.finLancGeradoResumoContas(lancGerado2);
			for (int i = 0; i < listCredito.size(); i++) {
				Object[] obj = (Object[]) listCredito.get(i);
				lancGerado = new LancGerado();
				lancGerado.setDtContabil((Date) obj[0]);
				lancGerado.setCdContabil((String) obj[1]);
				lancGerado.setVlCreditoFilter((Double) obj[2]);
				lancGerado.getLancGeradoPK().setCdEmpresa(lancGerado.getLancGeradoPK().getCdEmpresa());
				lancGerado.getLancGeradoPK().setNuLoteContabil(lancGerado.getLancGeradoPK().getNuLoteContabil());
				lancamentos.add(lancGerado);
			}
			
		} catch (Exception e) {
			throw new RuntimeException(e);
		} 
		return lancamentos;
	}

Assim fica ok:

public List<LancGerado> gerarLancGeradoResumoContas(LancGerado lancGerado2){
		List<LancGerado> lancamentos = new ArrayList<LancGerado>();
		ContaContabilEJB contaContabilEJB = IncServiceLocator.getContaContabilEJB();
		
		try {
			ContaContabil contaContabil = new ContaContabil();
			contaContabil.getContaContabilPK().setCdEmpresa(lancGerado2.getLancGeradoPK().getCdEmpresa());
			Map<String, ContaContabil> map = contaContabilEJB.findContaContabilEmpresa(contaContabil);
			
			lancGerado2.setFlStatus(LancGerado.FL_CREDITO);
			List listCredito = this.finLancGeradoResumoContas(lancGerado2);
			for (int i = 0; i < listCredito.size(); i++) {
				Object[] obj = (Object[]) listCredito.get(i);
				LancGerado lancGerado = new LancGerado();
				lancGerado.setDtContabil((Date) obj[0]);
				lancGerado.setCdContabil((String) obj[1]);
				lancGerado.setVlCreditoFilter((Double) obj[2]);
				lancGerado.getLancGeradoPK().setCdEmpresa(lancGerado2.getLancGeradoPK().getCdEmpresa());
				lancGerado.getLancGeradoPK().setNuLoteContabil(lancGerado2.getLancGeradoPK().getNuLoteContabil());
				String chave = lancGerado.getCdContabil()+"_"+lancGerado2.getLancGeradoPK().getCdEmpresa();
				lancGerado.setContaContabilFilter(map.get(chave));
				lancamentos.add(lancGerado);
			}

		} catch (Exception e) {
			throw new RuntimeException(e);
		} 
		return lancamentos;
	}

a duvida: tem algum jeito de resolver no primeiro exemplo?