Void adicionar/retornar um valor

6 respostas
rafael.luc

Estou modificando um programa java que faz a chamada/abertura de uma logica dentro de Void, não sei como fazer essa chamada em uma classe separadamente já que seria parte do programa.
Fiz uma logica para esse Void, mas ficou grande demais e no caso fiz em uma pagina separada em outra classe. O que preciso é passar os valores de chamada/abertura do Void para outra classe e depois de processadas retornar.

Não consigo passar os valores do Void (protected) para a classe public que fiz. Sei que é possível, mas como eu faria? Teria que declarar as variáveis como private e passar por Set?

6 Respostas

drsmachado

É…
Ahn?

fbl.lucas

Cara eu li umas 3 vezes e não consegui entender o seu problema.

Como assim dentro de um Void? você quis dizer que o código é executado dentro de um método sem retorno,
e quer remover este código para outra classe passando os parâmetros necessários para a execução? posta o código ai.

rafael.luc

é complicado explicar como funciona o programa, o método Void faz uma abertura de banco de dados e paga um valor de cada vez controlado por um runtime periodicamente.

O que eu queria saber é como passar o valor do Void para uma classe .

rafael.luc
fbl.lucas:

Como assim dentro de um Void? você quis dizer que o código é executado dentro de um método sem retorno,
e quer remover este código para outra classe passando os parâmetros necessários para a execução? posta o código ai.

O método Void tem retorno e envio pela porta serial, veja este codico com a logica toda dentro do Void (não é o meu codico)

protected void doPoll(long time) {

		try {

			// no data
			if (getInSerialStream().available() == 0) {

				for (DataPointRT dataPoint : dataPoints) {
					ASCIISerialPointLocatorVO dataPointVO = dataPoint.getVO()
							.getPointLocator();
					if (!dataPointVO.getCommand().equals(null)) {
						getOutSerialStream().write(
								dataPointVO.getCommand().getBytes());
					}

				}
				raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, time, true,
						new LocalizableMessage("event.exception2",
								vo.getName(), "Sem dados disponíveis !"));
			} else if (getInSerialStream().available() > 0) {
				byte[] readBuffer = new byte[vo.getBufferSize()];
				try {

					while (getInSerialStream().available() > 0) {
						getInSerialStream().read(readBuffer);
					}

					String result = new String(readBuffer);
					// System.out.println("Result: " + result);

					// Pos processing
					String posResults[];

					// Regex string
					String posResultFinal = "";

					// Debug posResults
					posResults = result.split(vo.getCharX());

					for (int i = 0; i < posResults.length; i++) {
						// System.out.println("posResult: " + posResults[i]);
					}

					if (!vo.getCharX().equals(null)) {
						// System.out.println("Caracterer :" + vo.getCharX());
						posResults = result.split(vo.getCharX());

						if (posResults.length != 0) {
							posResultFinal = posResults[0];
							// System.out.println("posResultFinal: "
							// + posResultFinal);
							// System.out.println("tamanho: " +
							// posResults.length);
							for (int i = 0; i < posResults.length; i++) {
								// System.out.println(posResults[i]);
							}
						}
					}

					for (DataPointRT dataPoint : dataPoints) {
						try {
							ASCIISerialPointLocatorVO dataPointVO = dataPoint
									.getVO().getPointLocator();
							if (!dataPointVO.getCommand().equals(null)) {
								getOutSerialStream().write(
										dataPointVO.getCommand().getBytes());
							}

							// troquei posResult por result
							MangoValue value = getValue(dataPointVO, result);
							long timestamp = time;
							// write to port

							if (dataPointVO.isCustomTimestamp()) {
								try {
									timestamp = getTimestamp(dataPointVO,
											result);
								} catch (Exception e) {
									raiseEvent(
											POINT_READ_EXCEPTION_EVENT,
											time,
											true,
											new LocalizableMessage(
													"event.exception2", vo
															.getName(), e
															.getMessage()));
									timestamp = time;
								}

							}

							dataPoint.updatePointValue(new PointValueTime(
									value, timestamp));
						} catch (Exception e) {
							raiseEvent(POINT_READ_EXCEPTION_EVENT, time, true,
									new LocalizableMessage("event.exception2",
											vo.getName(), e.getMessage()));
							// e.printStackTrace();
						}

					}

				} catch (Exception e) {
				}
			}

		} catch (IOException io) {
			getsPort().close();
			reconnect();
		} catch (Exception e) {
		}
	}
rafael.luc

Aqui tenho um codico que retorna um valor de um Void queria saber a forma mais simples de fazer isso.

package rt;
import java.util.*;

	class Catalogo {
		   List<Nome> nomes = new ArrayList<Nome>();
		   void add(Nome nome) {
		      nomes.add(nome);
		   }
		
		}
	
   class Nome {	
	String id ;
	String valor ;
	   Nome(String id, String valor) {  
		      this.id = id;  
		      this.valor = valor; 
	   }	
	   public String toString() {
		      return id + " " + valor;
		   }
   }
package rt;
import rt.Catalogo;

public class Principal {

	public static void main(String[] args) {
		
		Catalogo catalogo = new Catalogo();
		
		 
		catalogo.add(new Nome("1", new String("valor10")));
		catalogo.add(new Nome("2", new String("valor20")));
		
	
		for (Nome nome: catalogo.nomes) {
		System.out.println(nome);
		}
	}

}
rafael.luc

Alguém sabe uma maneira de retornar o valor em um Void protected?

Criado 19 de dezembro de 2011
Ultima resposta 20 de dez. de 2011
Respostas 6
Participantes 3