Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialJohn Grillo
30,241 PointsJava Apply discount Code task 1 problems -- '.' is an unknown symbol?
Hiya Treehouse Land, I've been tackling this problem for a good 20 minutes now and after looking at other's solutions, I'm at my wits end. I can not make hide nor hair of this error message. And if you look at my code, you'll see it satisfies the requirement.
./Order.java:27: error: cannot find symbol this.discountCode = discountCode.normalizeDiscountCode(discountCode); ^ symbol: method normalizeDiscountCode(String) location: variable discountCode of type String Note: JavaTester.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 1 error
Thank you for reading. I'm just doing the best I can.
public class Order {
private String itemName;
private int priceInCents;
private String discountCode;
private String normalizeDiscountCode(String discountCode) {
return discountCode.toUpperCase();
}
public Order(String itemName, int priceInCents) {
this.itemName = itemName;
this.priceInCents = priceInCents;
}
public String getItemName() {
return itemName;
}
public int getPriceInCents() {
return priceInCents;
}
public String getDiscountCode() {
return discountCode;
}
public void applyDiscountCode(String discountCode) {
this.discountCode = discountCode.normalizeDiscountCode(discountCode);
}
}
public class Example {
public static void main(String[] args) {
// This is here just for example use cases.
Order order = new Order(
"Yoda PEZ Dispenser",
600);
// These are valid. They are letters and the $ character only
order.applyDiscountCode("abc");
order.getDiscountCode(); // ABC
order.applyDiscountCode("$ale");
order.getDiscountCode(); // $ALE
try {
// This will throw an exception because it contains numbers
order.applyDiscountCode("ABC123");
} catch (IllegalArgumentException iae) {
System.out.println(iae.getMessage()); // Prints "Invalid discount code"
}
try {
// This will throw as well, because it contains a symbol.
order.applyDiscountCode("w@w");
}catch (IllegalArgumentException iae) {
System.out.println(iae.getMessage()); // Prints "Invalid discount code"
}
}
}
1 Answer
Ben Reynolds
35,170 PointsI think it's this line:
this.discountCode = discountCode.normalizeDiscountCode(discountCode);
It thinks you're calling a method named normalizeDiscountCode that lives in a class named "discountCode". Remove the "discountCode." at the beginning of the method call and you should be good.
John Grillo
30,241 PointsJohn Grillo
30,241 PointsI did that as my first solution and it didn't work then, now it suddenly is. What's going on?