obrigado pela sua resposta, eu coloquei comentarios com os warninggs nos respectivos locais
packagesistema;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Iterator;importjava.util.List;importjava.util.Scanner;publicclassBank{staticList<Account>lista=newArrayList<Account>();//warning - Account is a raw type. References to generic type Account<T> should be parameterizedpublicvoidstop(){// TODO Auto-generated method stubSystem.exit(1);}publicvoiddeposit1(){// TODO Auto-generated method stubScannersc=newScanner(System.in);System.out.println("Your name account:");Stringfind=sc.nextLine();Account<?>ac=findByName(find);if(ac==null){System.out.println("Account does not exist");}else{System.out.println("Found account! "+ac);Scannersc1=newScanner(System.in);System.out.println("What value do you want to deposit: ");Doublescan=sc1.nextDouble();ac.deposit(scan);}}publicvoidwithdraw1(){// TODO Auto-generated method stubScannersc=newScanner(System.in);System.out.println("Your name account: ");Stringfind=sc.nextLine();Account<?>ac=findByName(find);if(ac==null){System.out.println("Account does not exist");}else{System.out.println("Found account! "+ac);Scannersc1=newScanner(System.in);System.out.println("What value do you want to withdraw: ");Doublescan=sc1.nextDouble();ac.withdraw(scan);}}privateAccount<?>findByName(Stringname){// TODO Auto-generated method stubfor(Account<?>ac:lista){if(ac.getAccountName().equals(name)){returnac;}}returnnull;}publicvoidshowAll(){// TODO Auto-generated method stubCurrentAccountaccount1=newCurrentAccount("Alberto Carlos",1052);CurrentAccountaccount2=newCurrentAccount("Pedro Fonseca",30);CurrentAccountaccount3=newCurrentAccount("Ricardo Vitor",1534);CurrentAccountaccount4=newCurrentAccount("João Lopes",3135);AccountLongTermaccount11=newAccountLongTerm("Jacinto Alves",54502);AccountLongTermaccount12=newAccountLongTerm("Ana Anabela",30);AccountLongTermaccount13=newAccountLongTerm("Carlos Brás",1234);AccountLongTermaccount14=newAccountLongTerm("José Fonseca",545);AccountPaccount21=newAccountP("Manuel Jose",2200);AccountPaccount22=newAccountP("Carla Costa",3050);AccountPaccount23=newAccountP("Francisco José",12214);AccountPaccount24=newAccountP("Alberto Teixeira",31415);BankBank1=newBank();Bank1.addAccount(account1);Bank1.addAccount(account2);Bank1.addAccount(account3);Bank1.addAccount(account4);Bank1.addAccount(account11);Bank1.addAccount(account12);Bank1.addAccount(account13);Bank1.addAccount(account14);Bank1.addAccount(account21);Bank1.addAccount(account22);Bank1.addAccount(account23);Bank1.addAccount(account24);Collections.sort(Bank1.lista);// Type safety: Unchecked invocation sort(List<Account>) of the generic method sort(List<T>) of type CollectionsSystem.out.printf("Bank Accounts:"+"%n");Iterator<Account>itr=Bank1.lista.iterator();//Account is a raw type. References to generic type Account<T> should be parameterizedwhile(itr.hasNext()){Account<?>element=itr.next();System.out.printf(element+" "+"%n");}System.out.println();}publicvoidaddAccount(Account<?>account){lista.add(account);};}
e este
packagesistema;importjava.text.DecimalFormat;abstractclassAccount<T>implementsjava.lang.Comparable<T>{privateStringaccountName;privatedoublebalance;protecteddoubleresultLong;protecteddoublerate;publicAccount(StringaccountN,doublebal){// TODO Auto-generated constructor stubsetAccountName(accountN);setBalance(bal);}publicintcompareTo(Objecto){// TODO Auto-generated method stubif(this.getBalance()>((Account<?>)o).getBalance()){return-1;}if(this.getBalance()<((Account<?>)o).getBalance()){return1;}return0;}DecimalFormatbalanceMoney=newDecimalFormat(" 0");DecimalFormatdecimals=newDecimalFormat(" 0.00 ");publicdoubleresultLong(){returnresultLong=balance*rate;}publicvoidsetBalance(doublebalance){this.balance=balance;}publicdoublegetBalance(){returnbalance;}publicvoidsetAccountName(StringaccountName){this.accountName=accountName;}publicStringgetAccountName(){returnaccountName;}publicabstractvoiddeposit(doubleamount);publicabstractdoublewithdraw(doubleamount);}
adriano_si
Se você perceber, a classe Account possui um Genérico…
quando você cria seu ArrayList na classe Bank você está passando um Account sem a classe que deveria ser o Genérico
Faça assim static List <Account<SuaClasseGenerica>> lista = new ArrayList<Account<SuaClasseGenerica>>();
Agora cuidado, acho que você ainda não entendeu os Generics, essa classe tem que fazer algum sentido no negócio…
em tempo de execução seus <> são apagados pelo compilador, eles não existem, eles existem somente para que o compilador faça a checagem de tipos que você está usando em tempo de compilação mesmo…