Ich übersetze etwas Code von Standard C++ nach Java. Mehrere Orte nutzenJava-Paar entspricht C++
std::pair<T1,T2>
genau
std::pair<Date,double>
Gibt es einen Standard idiomatische Weise einen parametrisierte Paartyp in Java zum Ausdruck bringen? Als ein Beispiel habe ich
einen benutzerdefinierten Typ verwendenclass Observation {
LocalDate date;
double value;
}
ich anderen Fällen auch, wo zwei oder drei Dinge müssen von einer Funktion zurückgegeben werden. In anderen Sprachen würde ich wahrscheinlich Paare, Tripel und andere Tupeleinheiten verwenden.
Es macht mir nichts aus, die benötigten kleinen Klassen zu machen, aber ich würde gerne wissen, ob ich irgendwo eine Java-Funktion verpasse.
Vielen Dank im Voraus für Ihre Kommentare.
(P. S. Ich bin mir ziemlich sicher, dass dies meine erste Frage ist immer auf S. O. gestellt)
Danke. Ich glaube, dass ich diese Frage irgendwie vermisst habe, und es ist definitiv dieselbe Frage. Abgesehen davon stimme ich dieser Antwort nicht zu, dass es eher eine gute Sache ist, kleine Klassen als Semantik zu machen - Paare oder andere Tupel zu verstecken. Trotzdem, vielen Dank und es beantwortet meine Frage vollständig und richtig. –
Java lässt dies bewusst aus. Der Punkt ist, dass Sie eine richtige Klasse mit sinnvoll benannten Feldern erstellen. –
Ich verstehe die Absicht der Java-Designer, mich zu zwingen, eine Klasse mit zwei benannten Feldern zu machen, und dass, wenn in Rom, sollte man tun, wie die Römer tun. Ich wollte nur sicherstellen, dass ich tatsächlich so vorgehe wie die Römer. Ich stimme diesem absichtlichen Zwang nicht zu, und wenn es richtig ist, muss man zustimmen, dass diejenigen außerhalb Roms, zum Beispiel C++, Go, Scheme, Scala, Haskell und Python-Programmierer, eine schlechte Sprachdesign-Entscheidung treffen oder Tupel. Angesichts der Tatsache, dass Java jetzt lambdas hat, werde ich nicht überrascht sein, Tupel eines Tages zu sehen. –