Avatar billede jgthb Nybegynder
04. december 2007 - 21:04 Der er 9 kommentarer og
1 løsning

igen uses unchecked or unsafe operations

Hej

vi var måske lidt forhastede før. http://www.eksperten.dk/spm/808919

da jeg sidste gang sagde, at den var god nok, var der ganske vist ingen syntaksfejl, så den kunne altså godt kompile. men når jeg gjorde det kom dog stadig frem med advarslen ""Note: F:\...\Kursusbase.java uses unchecked or unsafe operations", hvis jeg trykkede på kompiler-knappen inde i vinduet til den enkelte klasse (bruger BlueJ). Jeg har siden ændret lidt, men her er koden igen:

import java.util.Scanner;
import java.util.ArrayList;
import java.io.*;

/**
*
*/
public class Kursusbase
{
    private ArrayList<String> skemaPlaceringHM;
    private Scanner reader;
   
    public Kursusbase()
    {   
        ArrayList skemaPlaceringHM = new ArrayList<String>();
        Scanner reader = new Scanner("skemagrp.txt");
        Kursus kursus1;
        String ord1;
        String ord2;

      Scanner sc = null;
        try {
            sc = new Scanner(new FileInputStream("skemagrp.txt"));
        } catch(FileNotFoundException e) {
            System.out.println("studiegrp-fil ikke fundet");
        }
            while (sc.hasNextLine()) {                           
                Scanner linie = new Scanner(sc.nextLine());
                ord1 = linie.next();
                ord2 = linie.nextLine().trim();
                skemaPlaceringHM.add(ord1);               
                kursus1 = new Kursus(ord1, ord2);
        }
        sc.close();
    }             

}
Avatar billede arne_v Ekspert
04. december 2007 - 21:10 #1
ArrayList skemaPlaceringHM = new ArrayList<String>();

->

skemaPlaceringHM = new ArrayList<String>();

den er erklaeret uden <> men i virkeligheden skal den slet ikke erklaeres da den
skygger for instans variablen af samme navn
Avatar billede mikkelbm Nybegynder
04. december 2007 - 21:12 #2
ArrayList skemaPlaceringHM = new ArrayList<String>();

Derfor :)

Det skal nok være:

skemaPlaceringHM = new ArrayList<String>();
Avatar billede mikkelbm Nybegynder
04. december 2007 - 21:13 #3
For sent :)
Avatar billede jgthb Nybegynder
04. december 2007 - 21:26 #4
ahh...smart. men jeg kunne dog godt erklære den hvis jeg ville (med skygger på dog), ik?
men hvorfor skal jeg i linjen nedenunder så ikke fjerne "Scanner" forrest?
Avatar billede mikkelbm Nybegynder
04. december 2007 - 21:36 #5
Det burde du egentlig også. Det er ikke god skik at have lokale og globale variabler der hedder det samme.

Det var ikke pga. dobbelt erklæring du fik en warning, men fordi du inde i metoden ikke brugte generics.
Avatar billede arne_v Ekspert
04. december 2007 - 21:37 #6
det skal du ogsaa

den giver bare ikke compiler warnings da den ikke er generic
Avatar billede mikkelbm Nybegynder
04. december 2007 - 21:37 #7
metoden --> constructoren
Avatar billede jgthb Nybegynder
04. december 2007 - 23:27 #8
tak. du lægger bare svar arne v
Avatar billede superanden Nybegynder
09. december 2007 - 09:18 #9
Hvis du nu mener du er klogere end BlueJ og gerne vil slå de irriterende warnings fra går du ind i tools->preferences vælg misc tabben og fjern hakket i "show compiler warnings when unsafe operations are used."
Avatar billede arne_v Ekspert
23. december 2007 - 06:15 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester