Warum kann ich hier nicht auf die Methode zugreifen?

Detlef7able

Aktives Mitglied
Guten Tag,

warum kann ich hier mit der Variable t nicht auf die Methode getfullID() zugreifen?

Java:
package veranstaltung;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Teilnehmer {

    
    static int idnumber=69;
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Id t;
    private String name;
    private String vorname;
    private String wohnort;
    
    protected Teilnehmer() {}
    
    public Teilnehmer(Id id, String name, String vorname,String wohnort)
    {
        this.id=id;
        this.name=name;
        this.vorname=vorname;
        this.wohnort=wohnort;
    }
    
    
    public static String erzeugeID ()
    {
        String id= "JAVALAND-";
        id=id+idnumber;
        idnumber++;
        return id;
    }
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVorname() {
        return vorname;
    }

    public void setVorname(String vorname) {
        this.vorname = vorname;
    }

    public String getWohnort() {
        return wohnort;
    }

    public void setWohnort(String wohnort) {
        this.wohnort = wohnort;
    }

    
    @Override
    public String toString()
    {
        return  t.getfullID()" "+getName()+" "+getVorname()+" "+getWohnort();
    }
}

Java:
package veranstaltung;

public class Id {

    
    private String firstpart;
    private Long secondpart;
    
    public Id(String firstpart, Long secondpart)
    {
        this.firstpart=firstpart;
        this.secondpart=secondpart;
    }
    
    
    public String getFirstpart() {
        return firstpart;
    }

    public void setFirstpart(String firstpart) {
        this.firstpart = firstpart;
    }

    public Long getSecondpart() {
        return secondpart;
    }

    public void setSecondpart(Long secondpart) {
        this.secondpart = secondpart;
    }
    
    public String getfullID()
    {
        return firstpart+' '+secondpart;
    }
}
 
Die javax.persistence.Id brauch ich auch.

veranstaltung.Id muss ich ja nun nicht importieren oder?
Habe ein ähnliches Beispiel hier rumliegen, da geht es, weiß nicht woran es liegt.
 
Dass du beides brauchst ist klar. Aber er hat zwei Klassen mit gleichem SimpleName. Woher soll er wissen, wann er welche Klasse nehmen soll?

Also kannst du z.B. den vollen Namen angeben. Dabei ist egal, welche Klasse du über den SimpleName ansprechen willst.

Also mit dem Import auf Id von persistence kannst du die andere Klasse immer voll angeben als veranstaltung.Id. Oder du nimmst den Import weg (dann wäre Id die Klasse im gleichen Namespace) und du gibst dann die Annotation mit vollem Namen an.
 
Eine Idee wäre natürlich auch, die Klasse Id umzubenennen. Die Klasse hat ja ein gewisses Verhalten und das ist rein am Namen Id nicht erkennbar. Daher könnte man sich durchaus einen besseren Namen ausdenken.

Das würde dann dieses Problem automatisch mit beheben.
 

Zurück
Oben