erdgo Posted May 7, 2012 at 10:07 AM Report #453506 Posted May 7, 2012 at 10:07 AM Boas, Alguem me pode dar uma dica de como aceder a um elemento de uma arraylist que estra dentro de um objecto: public class Sale { //atributos class public int productId; public int value; public int amount; //Class constructor public Sale(int productId, int value, int amount ) { this.productId = productId; this.value = value; this.amount = amount; } public int getProduct() { return productId; } public int getValue() { return value; } public int getAmount() { return amount; } } import java.util.ArrayList; public class Shop { //atributos class public int id; public String name; // Array com todas as transacoes public ArrayList<Sale> sales = new ArrayList<Sale>(); //Class constructor public Shop(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } public void addSale(int id, int value, int amount) { sales.add(new Sale(id, value, amount)); } public ArrayList getSale() { return sales; } } import java.util.ArrayList; public class testeshop { public static void main(String[] args) { Shop sh1 = new Shop(1,"Loja1"); System.out.println(sh1.getId() + " " + sh1.getName()); sh1.addSale(1,1,1); sh1.addSale(11,11,11); sh1.addSale(3,2,1); System.out.println(sh1.getSale().get(1).getProduct()); <-------- dá erro: cannot find symbol } } Não consigo perceber porque dá este erro.... alguém pode ajudar. Obrigado eduardo.oliveira
joelbrito Posted May 7, 2012 at 02:42 PM Report #453564 Posted May 7, 2012 at 02:42 PM ((Sale)sh1.getSale().get(1)).getProduct() sh1.getSale().get(1) retoma um objecto, tens que fazer cast para Sale... Engenharia de Sistemas Informáticos @ IPCA "Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs
erdgo Posted May 7, 2012 at 06:17 PM Author Report #453616 Posted May 7, 2012 at 06:17 PM Boas, Obrigado pela resposta, mas nao existe outra forma de aceder aos atributos do objecto do tipo sale ? Nao percebo porque é que tenho que fazer cast. Se utilizar este codigo nao tenho que fazer cast, porque é que no outro tenho ? (sao ambos objetos) Sale sl1 = new Sale (33,33,33); System.out.println(sl1.getProduct());
xDarkLink Posted May 7, 2012 at 06:34 PM Report #453620 Posted May 7, 2012 at 06:34 PM Isso está acontecer porque o método que devolve o array, devolve-o de uma maneira genérica, ou seja, não indicas o tipo de dados do array... daí o compilador pedir-te para fazeres o cast 😄 Basta alterareste este método : public ArrayList getSale() { return sales; } para : public ArrayList<Sale> getSale() { return sales; } Boa sorte 🙂
erdgo Posted May 7, 2012 at 07:11 PM Author Report #453626 Posted May 7, 2012 at 07:11 PM Boas, Obrigado, era mesmo esse pormenor que me faltava, valeu, quem sabe, sabe !!! Grande abraço eduardo.oliveira
xDarkLink Posted May 8, 2012 at 12:39 AM Report #453685 Posted May 8, 2012 at 12:39 AM De nada colega, não desista 🙂 Abraço
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now