On Apr 3, 5:48 am, "ros" <ros...@gmail.com> wrote:
Hi,
I am working on this exercise and would be thankful if you folks
comment on it.
The requirement was as follows:
Create a MovieRating class that contains a private map with rating as
the key and minimum age as the value, populate this map when the class
is instantiated. Also include a method which takes two parameters,
rating and age and checks the minimum age in the map and returns true
or false to indicate whether or not a human with the specified age is
allowed to watch a movie with the specified rating.
My attempt is pasted below. I get a compiler error that says that I
have a missing return statement in getStatus. The return statements
that I have are in the if/else block. How can I solve this issue?
Also I am not sure about the Map?
Thanks
Ros
import java.util.HashMap;
import java.util.Map;
public class MovieRating {
private Map humanMap = new HashMap();
public MovieRating(){
humanMap.put("G", 18);
humanMap.put("PG", 16);
}
public boolean getStatus(String rating, int age){
int minAge;
minAge = Integer.getInteger((String) humanMap.get("PG"));
if (age < minAge ){
return false;
}
else if (age >= minAge){
return true;
}
}
}
Ros:
You also may want to try this,
import java.util.HashMap;
import java.util.Map;
public class MovieRating {
private Map humanMap = new HashMap();
public MovieRating(){
humanMap.put("G", new Integer(18));
humanMap.put("PG", new Integer(16));
}
public boolean getStatus(String rating, int age){
Integer ratingAge = (Integer)humanMap.get(rating);
if(ratingAge != null)
{
int minAge = ratingAge.intValue();
if (age < minAge ){
return false;
}
else{
return true;
}
}
return false;
}
}
The problem with your code is that you are trying to 1. add basic data
types to map (Map takes only references to Objects) 2. the "if/else
if" conditions has no "else" condition. For the compiler, it doesn't
know whats the default return is going to be in case if/elseif fails
3. Also, you have hardcoded the rating in access function.
Once you got this working, I guess you may want to add additional
condition checks for non-null method arguments.
V.
Thank you so much Vishist for the help. It makes sense.