Question: else if ( command. equals ( getLimit )) { //get a maximum limit of data for a call to the argument zone boolean invalidArgs =

else if (command.equals("getLimit")) { //get a maximum limit of data for a call to the argument zone boolean invalidArgs = false; long no = 0; int passwd = 0; String callZone = null; if(inl.hasNextLong()) { no = inl.nextLong(); } else{ invalidArgs = true; } if(!invalidArgs && inl.hasNextInt()) { passwd = inl.nextInt(); } else{ invalidArgs = true; } if(!invalidArgs && (no <= 0 || passwd <= 0)) { invalidArgs = true; } if(!invalidArgs && inl.hasNext()) { callZone = inl.next(); } if(!CallZone.isValidZone(zone)) { invalidArgs = true; } if(invalidArgs) { //error messages if command not executed successfully System.out.println("Error : invalid arguments for getLimit command"); } else{ PhoneCard card = ct.get(no); if(card == null) { System.out.println("Error : card no " + no + "does not exist"); } else if(card.getPassword() != passwd) { System.out.println("Error : password" + passwd + "incorrect"); } else if(!card.allowed(callZone)) { System.out.println("Error : card " + no + "not allowed for zone " + callZone); } else { System.out.println("Result : card " + no + "limit for zone " + callZone + "is " + card.getLimit(callZone) + "minutes"); } }       } else if (command.equals("charge")) { // get the charge command executed boolean invalidArgs = false; long no = 0; int passwd = 0; String callZone = null; int min = 0; if(inl.hasNextLong()) { no = inl.nextLong(); } else{ invalidArgs = true; } if(!invalidArgs && inl.hasNextInt()) { passwd = inl.nextInt(); } else{ invalidArgs = true; } if(!invalidArgs && (no <= 0 || passwd <= 0)) { invalidArgs = true; } if(!invalidArgs && inl.hasNext()){ callZone = inl.next(); } if(!CallZone.isValidZone(zone)){ invalidArgs = true; } if(!invalidArgs && inl.hasNextInt()) { min = inl.nextInt(); } if(!invalidArgs && min <= 0) { invalidArgs = true; } if(invalidArgs) { //error messages if command not executed successfully System.out.println("Error : invalid arguments for charge command"); } else { PhoneCard card = ct.get(no); if(card == null) { System.out.println("Error : card no " + no + "does not exist"); } else if(card.getPassword() != passwd) { System.out.println("Error : password " + passwd + "incorrect"); } else if(!card.allowed(callZone)) { System.out.println("Error : card " + no + "not allowed for zone " + callZone); } else if(!card.charge(min , callZone) && card.getBalance() < card.costPerMin(callZone)*((double)min)) { System.out.println("Error : card " + no + "limit for zone " + callZone + "is " + card.getLimit(callZone) + "minutes"); } else { System.out.println("Result : card " + no + "charged " + (card.costPerMin(callZone)*((double)min)) + ", new balance is " + card.getBalance()); } } 

> javac SuperPhoneCardInc.java

SuperPhoneCardInc.java:123: error: cannot find symbol

if(!CallZone.isValidZone(zone)) {

^

symbol:variable zone

location: class SuperPhoneCardInc

SuperPhoneCardInc.java:134: error: incompatible types: String cannot be converted to CallZone

} else if(!card.allowed(callZone)) {

^

SuperPhoneCardInc.java:138: error: incompatible types: String cannot be converted to CallZone

card.getLimit(callZone) + "minutes");

^

SuperPhoneCardInc.java:164: error: cannot find symbol

if(!CallZone.isValidZone(zone)){

^

symbol:variable zone

location: class SuperPhoneCardInc

SuperPhoneCardInc.java:182: error: incompatible types: String cannot be converted to CallZone

} else if(!card.allowed(callZone)) {

^

SuperPhoneCardInc.java:184: error: incompatible types: String cannot be converted to CallZone

} else if(!card.charge(min , callZone) && card.getBalance() < card.costPerMin(callZone)*((double)min)) {

^

SuperPhoneCardInc.java:184: error: incompatible types: String cannot be converted to CallZone

} else if(!card.charge(min , callZone) && card.getBalance() < card.costPerMin(callZone)*((double)min)) {

^

SuperPhoneCardInc.java:186: error: incompatible types: String cannot be converted to CallZone

card.getLimit(callZone) + "minutes");

^

SuperPhoneCardInc.java:189: error: incompatible types: String cannot be converted to CallZone

(card.costPerMin(callZone)*((double)min)) + ", new balance is " + card.getBalance());

^

Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output

I don't know how to resolve this.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!