Methoden Generics-Methode

Bitte aktiviere JavaScript!
Java:
Java:
public class Addition<T> {
     private T summand1;
     private T summand2;
   
     public Addition(T summand1,T summand2)
     {
         this.summand1=summand1;
         this.summand2=summand2;
     }

    public T getSummand1() {
        return summand1;
    }

    public void setSummand1(T summand1) {
        this.summand1 = summand1;
    }

    public T getSummand2() {
        return summand2;
    }

    public void setSummand2(T summand2) {
        this.summand2 = summand2;
    }
   
   
}
Java:
public class test {

    public static void main(String[] args) {
       
        Addition<Integer>sum1=new Addition<>(12,33);
        Addition<Double>sum2=new Addition<>(12.5,33.5);
       
        Summe(sum1.getSummand1(),sum1.getSummand2());
        Summe(sum2.getSummand1(),sum2.getSummand2());
       
       
    }
   
     public static <T>void Summe(T a,T b)
     {
         T ergebnis=a + b; ERROR: The operator + is undefined for the argument type(s) T, T
       
         System.out.println("Ergebnis:" + ergebnis);
       
       
     }
   
   }
Kann mir einer sagen, was ich da falsch gemacht habe?
 
Zuletzt bearbeitet von einem Moderator:
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Der Fehler steht doch dort: "The operator + is undefined for the argument type(s) T, T" ;)

Plus gibts eben für "T" nicht. Das T in einem konkreten Aufruf ein Integer ist, weiß der Compiler in der Methode nicht.
 
Summe für konkrete Type, für die + definiert ist, überladen.


Allerdings klingt die Klasse Addition sehr danach, das in dieser eine Addition durchgeführt werden sollte...
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben