Acessar metodos get e set do meu array

ola pessoal,

 em um probleminha aqui estou usando um Bean onde coloco informaçoes que pego de um banco de dados...

soh que eu preciso de um array desse bean e fiz o seguinte

MeuBean mb[] = new MueBean[20];

ateh aki td bem, nao deu erro

qd entro no loop pra pegar os dados do banco ele da erro

eu to pegando da seguinte forma

mb[indice].setValor(resulset.getAlgumaCoisa());

minha duvida eh : a maneira certa de acessar metodos get e set de um array de bean eh essa?? ou tenho q fazer algo diferente??

obrigado pela atençao

Rodrigo

Pelas informações que você deu, tá tudo certinho.

é o seguinte… quando vc faz…

MeuBean mb[] = new MueBean[20]; 

vc está criando a array… que cabe 20 beans dentro… porem ela está vazia … só tem valores nulos nela…

ai quando vc faz

mb[indice].setValor(resulset.getAlgumaCoisa()); 

vc está tentando acessar um método de um objeto nullo o q gera um erro…
ou seja… antes de acessar seus bean faça o seguinte

for (int i =0;i < mb.length; i++) mb[i] = new MueBean();

OK??

t+ … espero q agora de certo =]

Se ao invés de

MeuBean mb[] = new MueBean[20];

eu colocasse

mb[] = new MueBean[20];

Teria o mesmo resultado certo?

Ps: esse tópico foi muito útil na aula de hoje! :slight_smile: Começamos a ver Java hj, e tinhamos que instanciar um array de objs… tavamos tentando de um modo errado! Obrigado a vocês! :]

isso:

MeuBean mb[] = new MueBean[20];

…é a mesma coisa que:

MeuBean mb[]; mb[] = new MueBean[20];

…logo, pra instanciar todos os objetos do vetor, é só fazer um laço como o tomaz descreveu… :smiley:

ahhh… e de uma forma mais trabalhosa pra este caso (20 objetos no vetor!), tb da pra fazer assim (no exemplo, 3 objetos):

MeuBean mb[] = new MeuBean[] { new MeuBean( "bean 1" ), new MeuBean( "bean 2" ), new MeuBean( "bean 3" ), new MeuBean( "bean 4" ) new MeuBean( "bean 5" ) };

levando em consideração q tu tens um construtor recebendo um argumento String em MeuBean

Ok, obrigado! :smiley:

Prezados,

Peguei como base este topico para criar um Webservice que retorna um array de beans.
A idéia é do Webservice buscar os registros no banco de dados e retornar o array de beans para uma servlet a qual vai receber o array de beans, tratar ele e imprimir em uma jsp uma tabela contendo os registros.

[code]
package webservice;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import util.ConexaoJDBC;
import bean.ProdutoBean;

public class EnviaBean {

public ProdutoBean[] retornaBean(String data1, String data2) {

	ConexaoJDBC ofbCon = new ConexaoJDBC();
	Connection conexao = null;
	
	DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
	
	ProdutoBean[] mb = null;

	try {
		conexao = ofbCon.abrirConexao();
		Date data1Parse = df.parse(data1);
		Date data2Parse = df.parse(data2);

		PreparedStatement st = conexao
				.prepareStatement("select cod, produto, data_cadastro from produtos where data_compra between ? and ?");
		;
		st.setDate(1, new java.sql.Date(data1Parse.getTime()));
		st.setDate(2, new java.sql.Date(data2Parse.getTime()));

		ResultSet rs = st.executeQuery();

		while (rs.next()) {			
			
			for (int i = 0; i < mb.length; i++){
				mb[i].setCod(rs.getInt("cod"));
				mb[i].setProduto(rs.getString("produto"));
				mb[i].setDataCompra(rs.getDate("data_compra"));					

			}
			
		}
		
	}
	
	 catch (Exception e) {
		System.out.println("Erro: "
				+ e.getMessage());
		e.printStackTrace();
	} finally {
		ofbCon.fecharConexao(conexao);
	}
	
	return mb;
}

}[/code]

O erro que gera é de NullPointerException, acredito que seja por que estou inicializando o array como null, porem, não sei como devo inicializar ele de forma correta para que funcione direito.

Erro:

Erro: null
java.lang.NullPointerException
	at webservice.EnviaBean.retornaBean(EnviaBean.java:41)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

Não sei se esta é a melhor forma de um Webservice buscar dados do banco a fim de gerar um relatório, mas foi a forma que meu professor apontou… porem ta complicado de resolver… Alguém aí pode me dar uma ajuda??

Abraços!!!