Pessoal alguém pode me explicar o que significa isso?
Busquei um código de list na internet, mas esse código não entendi. basicamente crio um list banco e tenho uma classe dados.
List<banco>bancos=(List)xStream.fromXML(input);input.close();System.out.println("#### LISTA DE USUÁRIOS #### ");for(bancodados:banco)//Essasintaxequegostariadeentender....
procurei sobre o : em tópicos mas não ficou claro, não consegui entender.
Acho que te mostrando um pouco em outras linguagens você consiga chegar a uma conclusão:
js (javascript):
for(vardadosinbanco)...
Python:
fordadosinbanco:...
PHP:
foreach(bancoasdados)...
Basicamente os dois pontos no for do java significa um in ou talvez um “para cada item da lista”, etc, vai da sua interpretação, o nome técnico dele é foreach… espero ter ajudado…
M
Mike1 like
Bom… Classes devem começar com a primeira letra maiúscula, assim fica mais fácil o entendimento
Este for é conhecido como forEach.
A assinatura dele seria assim: for(ClasseDaLista objeto : listaQueVaiSerIterada)
o primeirobanco do seu for é o tipo da sua lista, o dados é o objeto que vai referenciar cada posição da lista e o segundobanco é a própria lista, mas no seu código a lista se chama bancos e não banco
W
Wpenach1
Entendi agora, obrigado…
Outra pergunta, como posso retornar essa lista para usar em outro método?
Você lê como “para cada tipo de Produto da lista listaProdutos imprima o nome”
T
Tuna1 like
Esse operador FOR é comumente chamado de FOREACH e as vezes em alguns casos ele é chamado de for aprimorado, ele é muito usado para percorrer ArrayList, a sintax dele é bem simples, você só precisa informa a classe e definir uma variável em seguida : (dois pontos), então, informe o ArrayList que irá ser percorrido.
No que se diz a respeito das vantagens que ele tem sobre o for comum quando se trata de ArrayList é que você não precisa informar o tamanho do array, condiçoes e etc, pois ele automaticamente vai percorrer o array por completo, o que te dá uma certa vantagem, você escreve menos e obtém o o mesmo resultado.
Obs. Um maneira de gravar e entender o que ele faz e como faz é: (Observe o comentario.)
//PERCORRA CADA ELEMENTO par DO TIPO int DENTRO DE pares.int[]pares={2,4,6,8,10,12};for(intpar:pares){System.out.print(par);}
Espero ter ajudado.
S
staroski
returnminhaLista;
W
Wpenach1
Galera realmente não consegui, acredito que seja básico do básico, mas… se alguém puder me ajudar. A respeito do : e do for entendi o que esta pegando é que preciso dos dados para outra classe e pegar o valor de cada objeto lá. Não sei como fazer. vou postar o que tenho.
publicstaticObjectlerXMLListaUsuario(StringArquivoCaminho){Object[]o=newObject[9];try{XStreamxStream=newXStream(newDomDriver());xStream.alias("usuarios",ArrayList.class);xStream.processAnnotations(Banco.class);Filefile=newFile(ArquivoCaminho);BufferedReaderinput=newBufferedReader(newFileReader(file));List<Banco>banco=(List)xStream.fromXML(input);input.close();System.out.println("#### LISTA DE USUÁRIOS #### ");for(Bancodados:banco){o[0]=dados.getDriver();o[1]=dados.getUrl();o[2]=dados.getUsuario();o[3]=dados.getDriver1();o[4]=dados.getUrl1();o[5]=dados.getUsuario1();o[6]=dados.getDriver2();o[7]=dados.getUrl2();o[8]=dados.getUsuario2();}for(inti=0;i<o.length;i++){System.out.println(o[i]);//os valores imprimi normal na saída, mas preciso desses valores em outra classe}}catch(IOExceptionex){System.out.println(ex.getMessage());}//System.out.println(o);returno;}
Obrigado e desculpa a pergunta.
S
staroski1 like
Modifica seu método lerXMLListaUsuario para retornar uma lista de objetos do tipo Usuario.
L
LuanFroehlich1 like
public static Object[] lerXMLListaUsuario(String ArquivoCaminho)
Assim o return o; retorna um array de objeto e não um objeto.
Coloque nomes mais sugestivos nas variáveis, o nome “o” quer dizer nada.
W
Wpenach1
Deu certo…Valeu pelas dicas é que estava fazendo uns teste e pra adianta puz somente a letra… Estava faltando o `Object [] no metodo…
Vlew galera.