Interface für Arithmethik?

Status
Nicht offen für weitere Antworten.

RTC

Mitglied
Hi Leute.

Der Titel trifft es vielleicht nicht ganz, was ich will.
Folgendes: ich möchte mir eine Klasse basteln, die Schablonenparameter enthält. Bei diesen Schablonen soll es sich um einen Grunddatentyp handeln, mit denen arithmetische Operationen (+,-,*,/) ausgeführt werden können. In der Klasse soll eine Methode add() definiert sein, die 2 Argumente der beiden Typen normal addiert. Also sowas wie:
Code:
class MyClass<N1,N2>{
  public static N1 add(N1 a, N2 b){
    return (N1)(a+b);
  }
}

Meine Frage: kann ich das irgendwie möglich machen? Der Knackpunkt ist wie leicht ersichtlich sein dürfte das a+b. Java weiß ja nicht, dass es sich z.B. um double und int handelt und man die schön miteinander addieren kann (vom Ergebnis-Cast jetzt mal abgesehen). Deshalb auch der komische Titel. Gibt es eine Art Interface oder abstrakte Klasse, welche angibt, dass zwei Typen miteinander durch +,-,*,/ verknüpft werden können? Erst dachte ich an Number, aber das enthält ja nur Methoden für explizite Umwandlungen...

Danke für eure Hilfe.
Gruß, Matthias
 
S

SlaterB

Gast
mit primitiven Klassen wirst du nicht weit kommen,
die passen ja gar nicht ins restliche Schema,

aber wenn du dir eigene Klassen definierst, ist in der Richtung was möglich,

ich denke mal, dass add dann in diesen Klassen besser aufgehoben ist,
wenn du es extern machen willst, brauchst du mindestens
Code:
public N1 add(N1 a, N2 b){
    return a.createNewObject(a.getValue()+b.getValue());
}
wobei getValue() einen primitiven Datentyp wie double liefern müsste

static geht bei Generics + Vererbung sowieso nicht (glaube ich)

also da sieht
N1 erg = a.add(b);
ganz ohne Spezialklasse doch deutlich verständlicher aus
 

Ullenboom

Bekanntes Mitglied
So eine Schnittstelle ist mir nicht bekannt. Aber vielleicht kannst du ja selbst was definieren wie
Code:
interface Arithmetic<T /* vielleicht extends Number hier */>
{
  T add( T a, T b );
  // und die Anderen
}

class DoubleArithmetic implements Arithmetic<Double>
{
  @Override
  public Double add( Double a, Double b )
  {
    return a + b;
  }
}
Dann könnte so etwas wie DoubleArithmetic dein „Grundtyp“ sein, aber immer so etwas wie ein Arithmetic als Parametertyp bei Methoden einfordern.

Christian
 

RTC

Mitglied
Hallo und danke für eure Antworten.

Mir geht es halt vor allem darum, auch Integer und Double miteinander zu addieren, ohne für jede solche Kombination eine eigene Methode zu schreiben. Und das geht eben nicht, wenn es nicht eine Art Interface gibt, welches beschreibt, welche Typen miteinander können. Es gibt doch für alles mögliche Interfaces, warum nicht auch dafür?

Hm, wahrscheinlich werde ich mich hier einschränken müssen, es sei denn es fällt noch jemandem etwas ein. Bitte nicht an der Idee an sich zweifeln - das hat schon seinen Sinn...

LG Matthias
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4
N Trick für Compilerfehler bei fehlendem Interface Allgemeine Java-Themen 12
E Beispiel für ein möglichst einfaches Interface Allgemeine Java-Themen 22
E Oberbergriff für class und interface Allgemeine Java-Themen 20
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
OnDemand Interface imlementieren Allgemeine Java-Themen 4
Buroto Interface Allgemeine Java-Themen 2
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Kann man Annotationen auf Klassen einschränken die ein Interface implementieren? Allgemeine Java-Themen 1
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
B JaxB und @XmlIDREF mit Interface Allgemeine Java-Themen 1
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
P Abstrakte Klassen vs. Interface Allgemeine Java-Themen 4
Kirby.exe Autocloseable Interface Allgemeine Java-Themen 2
T Abgeleitetes Interface public ohne Schlüsselwort "interface"? Allgemeine Java-Themen 3
S static in Interface und Klasse Allgemeine Java-Themen 2
S static methode im Interface Allgemeine Java-Themen 1
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
B Vererbung Interface und implementierende Klassen Allgemeine Java-Themen 8
A Anonyme Klassen - Interface Allgemeine Java-Themen 5
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
mrBrown Namensfindung Fluent-Interface Allgemeine Java-Themen 0
J Logik in Interface Allgemeine Java-Themen 2
B eigenes Consumer Interface Allgemeine Java-Themen 0
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
N GUI Interface, swing Allgemeine Java-Themen 7
Thallius Konzeptproblem User-Interface Allgemeine Java-Themen 5
T Interface vs abstract Allgemeine Java-Themen 2
S Klassen Abstract, Interface und ein Chat Tool Allgemeine Java-Themen 1
I Interface Interface / Klasse - wieso Abstract? Allgemeine Java-Themen 13
D generische Interface und konkrete Methode Allgemeine Java-Themen 3
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
N Problem mit Generics und Interface Allgemeine Java-Themen 4
D Methode mit optionalen Parametern in Interface Allgemeine Java-Themen 3
T Interface mit generische Typen Allgemeine Java-Themen 5
M Interface einer Library implementieren Allgemeine Java-Themen 3
A Klassen ein Interface aufzwingen Allgemeine Java-Themen 4
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
J Interface Serializable Methodensignatur Allgemeine Java-Themen 2
F Interface IInterface oder Interface? Allgemeine Java-Themen 3
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
T Interface Probleme Allgemeine Java-Themen 8
M Queues und Queue Interface Allgemeine Java-Themen 3
I Mehrfaches Implementieren eines generischen Interface Allgemeine Java-Themen 9
W Java Native Interface und "mp3player" Allgemeine Java-Themen 3
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
P Eclipse Java Native Interface-Problem Allgemeine Java-Themen 8
Z Abstrakte Klassen /Interface Allgemeine Java-Themen 5
pg1337 Interface-Frage Allgemeine Java-Themen 24
S Interface Welchen Interface Stil favorisiert ihr? (usability) Allgemeine Java-Themen 17
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
R Implementierung eines Interface durch 2 verschiedene Klassen Allgemeine Java-Themen 6
T OpenOffice Interface Elemente Ein/Ausblenden Allgemeine Java-Themen 5
K Interface Interface comparable machen Allgemeine Java-Themen 9
T Interface > Abstract > Class Allgemeine Java-Themen 11
X Interface - Klasse einladen Allgemeine Java-Themen 6
G Interface -> InterfaceImplementierung Allgemeine Java-Themen 3
Ark Array durch Interface ersetzen Allgemeine Java-Themen 7
R Interface instanzieren Allgemeine Java-Themen 8
B Frage zu Interface und List Allgemeine Java-Themen 4
KrokoDiehl JNI: native im Interface Allgemeine Java-Themen 4
S normale vererbung als interface Allgemeine Java-Themen 2
N Unterschied abstract interface und interface Allgemeine Java-Themen 4
S interface verbung problem Allgemeine Java-Themen 9
S problem programm mit interface: Allgemeine Java-Themen 3
R Vererbung mit Interface und Abstract Allgemeine Java-Themen 3
B Interface und von Thread ableiten Allgemeine Java-Themen 6
R Interface Serializable technische Begrenzung Allgemeine Java-Themen 2
T Interface-Referenz Allgemeine Java-Themen 2
L interface abstrakte klasse Allgemeine Java-Themen 21
S Interface Geschäftslokik & GUI Allgemeine Java-Themen 6
G Interface zwischen 2 Programmierern Allgemeine Java-Themen 10
C Schnittstellen(interface) Allgemeine Java-Themen 9
N List<? implements "Interface"> geht nicht Allgemeine Java-Themen 13
D javadoc interface + implementation + @overrides Allgemeine Java-Themen 16
G Interface oder abstrakte Klasse Allgemeine Java-Themen 4
T Parameter einer Klasse auf Interface prüfen Allgemeine Java-Themen 6
A feststellen, welche Klassen ein Interface implementieren Allgemeine Java-Themen 3
G class, interface, or enum exp? Allgemeine Java-Themen 2
S Interface Klasse überladen. Allgemeine Java-Themen 2
K Inneres Interface äußere Klasse Allgemeine Java-Themen 7
T Frage zu interface und "guter Programmierstil" Allgemeine Java-Themen 4
T Interface "on-the-fly" implementieren? Allgemeine Java-Themen 3
S Frage zu Interface Allgemeine Java-Themen 7
J Objektorientiert - Interface & Klassen Allgemeine Java-Themen 3
G Interface - Klassen implementieren das - Reflection ok? Allgemeine Java-Themen 4
T "Programming against the interface" sinnvoll? Allgemeine Java-Themen 18
G Interface mehrfach implementieren Allgemeine Java-Themen 5
@ zur Laufzeit Interface aus jar implementieren? Allgemeine Java-Themen 5
A Was ist der genau Sinn eines Interface? Allgemeine Java-Themen 13
D QuickSort, Interface Allgemeine Java-Themen 2
MQue Interface implementieren Allgemeine Java-Themen 7
P Liste von Klassen die ein Interface implementieren speichern Allgemeine Java-Themen 12
L Interface Frage! Allgemeine Java-Themen 25
T Instanz einer Interface abgeleiteten Klasse erzeugen Allgemeine Java-Themen 3
F Ein interface und private Methoden? Allgemeine Java-Themen 13
G nichtabstrakte Funktion zu einer Interface hinzufügen Allgemeine Java-Themen 6
minzel Java Native Interface Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben