Avatar billede montymus Nybegynder
19. januar 2004 - 12:52 Der er 28 kommentarer og
1 løsning

public Item removeCompany(int index) hjælp plz

Jeg sidder her med min kursus opg og har lidt øhhmm mange probs.
Den bliver ved med at sige fejl i min "return aCompany". Hvad er det jeg har gjort forkert??

    public Item removeCompany(int index) {
        if (index >= 0 && index < data.size() ) {
            Company aCompany = (Company) data.elementAt(index);
            data.removeElementAt(index);
            return aCompany;
        }
        else
            return null;
    }
Avatar billede erikjacobsen Ekspert
19. januar 2004 - 12:54 #1
Enten

  public Company removeCompany(int index) {

eller

  return (Item)aCompany;

Om en af dem er din løsning kan jeg ikke sige ud fra oplysningerne.
Avatar billede montymus Nybegynder
19. januar 2004 - 13:01 #2
det jeg mener er:

Når jeg compiler det siger den at der er fejl i min return aCompany og ikke andre steder, og så er det jeg spørger om I kan se hvor det er fejlen er.

resten af programmet ser således ud

import java.util.*;

public class CompanyCollection {
        // Declaration of data fields
    private Vector data;
   
    /** Creates a new instance of CompanyCollection */
    public CompanyCollection() {
        data = new Vector();
    }
    //constructor

    // Adding a item always return true
    public boolean addCompany(Company aCompany) {
        data.addElement(aCompany);
        return true;
    }
        // Check index. Typecast and return aItem
/*    public boolean addCheckCompany(Company aCompany) {
          int id = Company.getCompanyId();
          if (Company.getStatus().equals
    }
*/
            // Check index. Typecast and return aItem
    public Company getCompany(int index) {
        if (index >= 0 && index < data.size() ){
            Company aCompany = (Company) data.elementAt(index);
            return aCompany;
        }
        else
            return null;
    }
        public Company getCompany(String companyId) {
        Company aCompany;
        String myCompanyId;
        for (int index=0; index < data.size(); index++) {
            aCompany = (Company) data.elementAt(index);
            myCompanyId = aCompany.getCompanyId();
            if ( myCompanyId.equals(companyId) ) {
                return aCompany;
            }
        }
        return null; // not found
    }
            // Check index. Typecast and remove aItem
    public Item removeCompany(int index) {
        if (index >= 0 && index < data.size() ) {
            Company aCompany = (Company) data.elementAt(index);
            data.removeElementAt(index);
            return aCompany;
        }
        else
            return null;
    }
            // Traverse vector. Typecast and return aItem
    // Assumes that itemNo uniquely identifies an item
    public Item removeCompany(String companyId) {
        Company aCompany;
        String myCompanyId;
        for (int index=0; index < data.size(); index++) {
            aCompany = (Company) data.elementAt(index);
            myCompanyId = aCompany.getCompanyId();
            if ( myCompanyId.equals(companyId) ) {
                data.removeElementAt(index);
                return aCompany;
            }
        }

        return null; // not found
    }
        public String toString() {
        Company aCompany;
        String s = "\n";
        for (int i=0; i < data.size(); i++) {
            aCompany = (Company) data.elementAt(i);
            s = s + aCompany + "\n";
        }
        return s;
    }
}
Avatar billede erikjacobsen Ekspert
19. januar 2004 - 13:24 #3
Hvad siger du til det jeg skrev før?
Avatar billede montymus Nybegynder
19. januar 2004 - 13:26 #4
edn siger fejl til det
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:27 #5
Kan du poste hvilken fejl du får?
Avatar billede montymus Nybegynder
19. januar 2004 - 13:30 #6
CompanyCollection.java [59:1] incompatible types
found  : Company
required: Item
                        return aCompany;


Det er fejlen
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:32 #7
Du skal gøre som ericjacobsen skrev tidligere.
Det er fordi du i metoden erklære at du vil returnere et Item, men du returnerer jo et Company-objekt.
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:33 #8
Enten skal du returnere et Company-objekt eller også skal du caste til et Item-objekt!
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:34 #9
Altså:

// Check index. Typecast and remove aItem
    public Company removeCompany(int index) {
        if (index >= 0 && index < data.size() ) {
            Company aCompany = (Company) data.elementAt(index);
            data.removeElementAt(index);
            return aCompany;
        }
        else
            return null;
    }

eller:

// Check index. Typecast and remove aItem
    public Item removeCompany(int index) {
        if (index >= 0 && index < data.size() ) {
            Company aCompany = (Company) data.elementAt(index);
            data.removeElementAt(index);
            return (Item)aCompany;
        }
        else
            return null;
    }

Men jeg vil mene det er mest naturligt at returnere et Company-objekt!
Avatar billede montymus Nybegynder
19. januar 2004 - 13:35 #10
I det første sp. skal jeg returnere et firma-objekt
I andet sp. skal jeg returnere item

Men jeg er helt blank for hvordan
Avatar billede montymus Nybegynder
19. januar 2004 - 13:36 #11
Int index der skal der returneres et firma-objekt

String CompanyId skal der rturneres et item
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:37 #12
Brug den sidste jeg lige postede.

Eller lav lidt om i metoden:

// Check index. Typecast and remove aItem
    public Item removeCompany(int index) {
        if (index >= 0 && index < data.size() ) {
            Item aItem = (Item) data.elementAt(index);
            data.removeElementAt(index);
            return aItem;
        }
        else
            return null;
    }
Avatar billede montymus Nybegynder
19. januar 2004 - 13:39 #13
Jeg skulle bruge den anden hehe.

Så er der lige det sidste sp ang det her.

Koden er :

    public Item removeCompany(String companyId) {
        Company aCompany;
        String myCompanyId;
        for (int index=0; index < data.size(); index++) {
            aCompany = (Company) data.elementAt(index);
            myCompanyId = aCompany.getCompanyId();
            if ( myCompanyId.equals(companyId) ) {
                data.removeElementAt(index);
                return aCompany;
            }
        }

        return null; // not found
    }

Hvordan får jeg så den til at returnere et item??
Avatar billede montymus Nybegynder
19. januar 2004 - 13:41 #14
Den vil ikke gå med til "return (Item)aCompny;

Der siger den

CompanyCollection.java [74:1] incompatible types
found  : Company
required: Item
                                return aCompany;
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:42 #15
Så skal du igen caste til et Item-objekt:

public Item removeCompany(String companyId) {
        Company aCompany;
        String myCompanyId;
        for (int index=0; index < data.size(); index++) {
            aCompany = (Company) data.elementAt(index);
            myCompanyId = aCompany.getCompanyId();
            if ( myCompanyId.equals(companyId) ) {
                data.removeElementAt(index);
                return (Item)aCompany;
            }
        }

        return null; // not found
    }
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:44 #16
Ud fra din fejl-melding ser det ikke ud til at du har castet!
Avatar billede montymus Nybegynder
19. januar 2004 - 13:45 #17
den siger den her fejl

CompanyCollection.java [74:1] inconvertible types
found  : Company
required: Item
                return (Item)aCompany;
Avatar billede montymus Nybegynder
19. januar 2004 - 13:50 #18
Skal jeg ikke bruge parse her da der er int med i det???
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 13:57 #19
Hvad hvis du gør følgende:

data.removeElementAt(index);
return (Item)aCompany;

ændrer du til:

return (Item)data.remove(index);
Avatar billede montymus Nybegynder
19. januar 2004 - 14:06 #20
Så nice det der.. For fedt.. Et sp. mere så er jeg færdig med den første applikation :)

Hvad er det man bruger når man bruger "keyboard"    er det bare java.util eller noget andet??

Hus at trykke svar så i kan få nogle point
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 14:18 #21
Jeg går ud fra du mener input fra tastaturet???

For så kan du gøre følgende:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try
{
    System.out.println (br.readLine());
}
catch (IOException ex) {}

Bare husk at
import java.io.*;
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 14:19 #22
og et svar!
Avatar billede montymus Nybegynder
19. januar 2004 - 14:25 #23
takker
Avatar billede montymus Nybegynder
19. januar 2004 - 14:26 #24
Jeg accepterer men den vil ikke give point videre
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 14:39 #25
hmmm. Det lyder underligt.
Men jeg tror der er lidt problemer med siden idag. Jeg kan se at der er et af mine indlæg der ikke bliver vist.
Avatar billede montymus Nybegynder
19. januar 2004 - 14:46 #26
ok
Avatar billede mikkelbm Nybegynder
22. januar 2004 - 22:05 #27
Ok?
Avatar billede mikkelbm Nybegynder
27. januar 2004 - 12:20 #28
Lukketid?
Avatar billede mikkelbm Nybegynder
14. februar 2004 - 22:04 #29
?
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