@Override public void run() { for (; ; ) { // Forever bank.transfer(Util.random(-10, 10)); // transfer money Util.pause(200, 300); // then take a break } }
/** Prompts user for info, then carry out the transfer operation in Bank. */ private static void transfer() { String prompt = "Please enter the account number to transfer FROM: "; int transferFromAccount = (int) getChoice(prompt); prompt = "Please enter the account number to transfer TO: "; int transferToAccount = (int) getChoice(prompt); prompt = "Please enter the amount to transfer: "; double amount = getChoice(prompt); ; try { theBank.transfer(transferFromAccount, transferToAccount, amount); System.out.println("\nTransfer successful."); System.out.printf( "Balance of account #: %d is %.2f\n", transferFromAccount, theBank.getBalanceForAccount(transferFromAccount)); System.out.printf( "Balance of account #: %d is %.2f\n\n", transferToAccount, theBank.getBalanceForAccount(transferToAccount)); } catch (AccountDoesNotExistException e) { System.out.println("\nOne of the accounts doesn't exist in this bank."); } catch (NegativeMoneyException e) { System.out.println("\nAmount to transfer has to be >= 0"); } catch (InsufficientFundsException e) { System.out.println("\nInsufficient funds in this account to transfer the given amount."); } catch (NotSameOwnerException e) { System.out.println("\nThese accounts don't belong to the same owner."); } }
public static void main(String[] args) { Bank bank = new Bank(NACCOUNTS, INITIAL_BALANCE); for (int i = 0; i < NACCOUNTS; i++) { int fromAccount = i; Runnable r = () -> { try { while (true) { int toAccount = (int) (bank.size() * Math.random()); double amount = MAX_AMOUNT * Math.random(); bank.transfer(fromAccount, toAccount, amount); Thread.sleep((int) (DELAY * Math.random())); } } catch (InterruptedException e) { } }; Thread t = new Thread(r); t.start(); } }