Avatar billede winston-smith Nybegynder
23. november 2001 - 12:18 Der er 2 kommentarer

Subclassing JTextField (Med points)

Jeg har lavet min egen impl. af JTextField (og JLabel) som jeg ønsker at udvide setText så den tager et Object som argument i stedet for String.

class TestTextField extends javax.swing.JTextField
{
    public void setText(Object obj)
    {
        setText(obj.toString());
    }
}

Dette er ikke muligt.
Error: Reference to setText is ambigous, both methods setText(java.lang.String) in javax.swing.JTextComponent and method setText(java.lang.Object) in TestTextField match.

Er der ikke en mulighed for at komme uden om dette? (Uden at omdøbe kaldet til et nyt navn så jeg skal ændre mine 300 kald dertil.)

Rune

(den forrige fik visk ikke nogle points)
Avatar billede carstenknudsen Nybegynder
23. november 2001 - 12:35 #1
Da alt nedarver fra Object vil du altid have
problemer med at have setText(Object) og
setText(Hvadsomhelst).  Prøv at skrive
super.setText(obj.toString()), men dine øvrige
kald kan stadig give problemer.
Avatar billede hvinther Nybegynder
23. november 2001 - 17:51 #2
Jo da. Det der sker er at dit kald

setText(obj.toString());

kan være et kald til både JtextFields metode med det navn, og til den metode du er at skrive. Prøv i stedet

super.setText(obj.toString());

Så har du specifkt angivet at det er super klassens metode der skal kaldes.

/hvinther
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