-
Kitty
- Berichten: 11
- Lid geworden op: 28-08-2013 13:12
Bericht
door Kitty » 14-09-2013 16:58
Omdat ik in hoofdstuk 4 even vast liep en toch verder wilde ben ik verder gegaan met hoofdstuk 5. Hier blijf ik een foutmelding krijgen bij opdracht 5.26
In netbeans als ik import java.util.HashMap krijg ik:
incorrect package
unused import
en bij bluej krijg ik bij compile van de volgende code:
Code: Selecteer alles
import java.util.HashMap;
/**
* Write a description of class MapTester here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MapTester
{
// instance variables - replace the example below with your own
private HashMap phoneBook;
/**
* Constructor for objects of class MapTester
*/
public MapTester()
{
// initialise instance variables
HashMap<String, String> phoneBook = new HashMap<String, String>();
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public void enterNumber(String name, String number)
{
// put your code here
phoneBook.put(name, number);
}
public String lookupNumber(String name)
{
//return phoneBook.get(name);
return "Test";
}
}
Deze error:
Note: ....MapTester.java uses unchecked of unsafe operations.
Note: Recompile with -Xlint:unchecked for details
Wat doe ik fout?
-
ercoargante
- Site Admin
- Berichten: 9
- Lid geworden op: 19-08-2013 19:01
Bericht
door ercoargante » 14-09-2013 18:59
Kitty,
In de constructor MapTester() heb je gezet:
HashMap<String, String> phoneBook = new HashMap<String, String>();
Daarmee initialiseer je niet de instantie variabele, maar maak je een nieuwe lokale variabele aan. Ik denk niet dat dat je bedoeling is en denk dat het moet zijn:
phoneBook = new HashMap<String, String>();
Mogelijk krijg je een warning "redundante type arguments in new expression (use diamond operator instead". Het gaat hier om een aanpassing tussen Java versie 6 en 7. Het is geen fout, maar dit lost het op:
phoneBook = new HashMap<>();
Nog een verbetering. Je hebt nu als member van de klasse:
private HashMap phoneBook;
Eigenlijk is beter:
private HashMap<String, String> phoneBook;
Je dwingt dan namelijk af dat de HashMap alleen Strings kan bevatten. Als je dan namelijk iets uit de HashMap haalt, hoef je niet meer te checken dat het inderdaad een String is.
Erco
-
Kitty
- Berichten: 11
- Lid geworden op: 28-08-2013 13:12
Bericht
door Kitty » 14-09-2013 19:10
Na het aanpassen van de code:
Naar:
En de constructor is ook aangepast:
Is het opgelost en krijg ik geen error meer, bedankt!
Code: Selecteer alles
public MapTester()
{
// initialise instance variables
phoneBook = new HashMap<String, String>();
}
-
RonaldK
- Berichten: 10
- Lid geworden op: 29-08-2013 16:40
Bericht
door RonaldK » 18-09-2013 15:01
Op oefening 5.65 loop ik behoorlijk vast, vooral omdat ik niet echt goed weet waar te beginnen.
Het project wat je hebt van de vorige opdrachten is wel een goed startpunt, maar dan ?? Waarschijnlijk loop ik gewoon veel te moeilijk te denken.
Iemand tips hoe ik deze opdracht het beste kan aanpakken ?