Fórum Ajuda para colocar um StringBuffer #428725

13/11/2012

0

Pessoal tenho uma stringbuffer estou tentando colocar dentro de (new object[]{}).

Tenho que preecher o meu modelo.addrow(new object[]{});

Hoje estou colocando os valores da seguite forma modelo.addrow(new object[]{"teste", "teste2", "teste3"});

tenho uma lista onde usarei o conteudo desta lista para determinar a quantidade de colunas. --> Funcionando.

Estou precisando de ajuda no momento de adicionar o conteudo nas linhas"Rowns".

Como a quantidade de colunas é vareante de acordo com lista, preciso fazer com que o conteudo a ser inserido no metodo modelo.addrow(), seja dinamico.

Pensei com criar uma vareavel do tipo StringBuffer para concaternar o conteudo de uma lista para armazenar esta vareavel dentro modelo.addrow();
Exemplo abaixo


StringBuffer strbuf = new StringBuffer();

for (int i = 0; i < insertLt.insertThData.size(); i++) {
bt = Integer.parseInt(insertLt.insertThData.get(i).getFormato());
posicao = insertLt.insertThData.get(i).getId()-1;
if(bt==1){
//System.out.println(insertLt.insertThData.get(i).getDescricao() +
// " = "+ Utils.int1(buf, posicao));
strbuf.append("Utils.int"+insertLt.insertThData.get(i).getFormato()+"(buf,"+
String.valueOf(insertLt.insertThData.get(i).getId()-1)+")");
strbuf.append(",");

} else if(bt==2){
strbuf.append("Utils.int"+insertLt.insertThData.get(i).getFormato()+"(buf,"+
String.valueOf(insertLt.insertThData.get(i).getId()-1)+")");
strbuf.append(",");
} else if(bt==4){

strbuf.append("Utils.int"+insertLt.insertThData.get(i).getFormato()+"(buf,"+
String.valueOf(insertLt.insertThData.get(i).getId()-1)+")");
strbuf.append(",");

}
}

O resultado dessa string seria --> {Utils.int4(buf,0),Utils.int4(buf,4),Utils.int4(buf,8),Utils.int4(buf,12)}.

Na teoria se eu coloca-se desta forma modelo.addrow(new objetct[]);

Mas não funcionou. alguem pode me dar alguma ideia.
David Alberto

David Alberto

Responder

Posts

14/11/2012

Davi Costa

Vc conhece vargs, vc vai ter que criar uma camada com um método que receba um vargs, dentro dele vc descobre a quantidade de colunas e instancia na sua tabela visual

att Davi
Responder

Gostei + 0

14/11/2012

David Alberto

Você tem algum exemplo para implementação?
Responder

Gostei + 0

14/11/2012

David Alberto

Fala meu chara, sua dica foi muito boa... Não tem muito conteúdo sobre vargs.


Mas acho que vale apena colocar um conteúdo que achei aqui.


Iai gente beleza?
Tentando manter uma freqüência nos posts vou escrever hoje sobre um recurso da linguagem Java que esteve disponível a partir da 5ª versão e que percebo que ainda são poucos os que conhecem. Sim, como o título do post diz estou falando do varargs.
Os varargs nos dão a possibilidade de passar uma quantidade variável de argumentos para um método. Vamos a um exemplo prático que será mais claro.


01.public static void main(String[] args){
02.
03.// chamada ao método passando quantas Strings forem necessárias
04.argumentosVariaveis("Antonio", "Rafael", "João", "José");
05.
06.//assim também funciona
07.argumentosVariaveis("Eu","Tu");
08.
09.//assim também
10.argumentosVariaveis("Uhuuu");
11.
12.}
13.
14.// Declara-se ( tipo ... nomeDaVariavel )
15.public static void argumentosVariaveis(String ... argumentos){
16.
17.// a variavel argumentos virou um array com os valores passados na chamada do método
18.// para exemplificar estou imprimindo o conteúdo dos parametros
19.for(int i = 0; i < argumentos.length; i ++){
20.System.out.print(argumentos[i] + "\n");
21.}
22.
23.}


No exemplo acima criei um método chamado argumentosVariaveis e declarei um dos argumentos como sendo variável, declara-se (tipo ... nome) dentro do método essa lista de argumentos será convertida em um array. O nosso exemplo imprimiu o conteúdo do array utilizando um for para demonstrar que realmente os valores chegam ao método.
Existem basicamente duas regras para utilizar os varargs.
1. O vararg deve sempre ser o último argumento do método.
2. Em conseqüência da primeira regra, só pode existir um vararg por método.

Exemplos de uso válido dos varargs:
1.public void metodo(String a, String b, int c, double ... doubles){}
2.public static void metodo(int a, int b, String ... strings){}
3.public void metodo(float a, MeuObjeto ... meusObjetos){}


Exemplos de uso INválido dos varargs:
1.//inválido o vararg deve ser o último argumento, o exemplo NÃO compila
2.public void metodo(int a, String ... strings, int b){}
3.
4.//inválido o vararg deve ser o último argumento portanto somente
5.//pode existir UM vararg por método, o exemplo NÃO compila
6.public void metodo(int a, String ... strings, int ... b){}

Curiosidade

Ao invés de utilizarmos o habitual array como argumento no método main podes usar varargs. O exemplo abaixo é perfeitamente válido e funciona da mesma forma do array
1.public static void main(String ... args){}


Bom amigos, é isso. Sugestões, comentários, críticas, xingamentos ou correções é só comentar.

Link de referência.
http://www.antoniorafael.eti.br/index.php?option=com_content&view=article&id=59:varargs-em-java&catid=35:conceitos-basicos&Itemid=55
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar