|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
[JAVA] Metodi ambigui. Come scegliere?
Salve ragazzi, ho un piccolo problema, vi posto qui la parte di codice che me lo crea:
Codice:
double nextValue = curveArray[value]; result.addValue(nextValue, "Experiment", value+1); Alla seconda istruzione sorge il problema. L'oggetto "result" infatti ha due metodi "addValue" con la seguente segnatura: - void addValue(Number value,Comparable rowKey,Comparable columnKey); - void addValue(double value,Comparable rowKey,Comparable columnKey); Come potete vedere i due metodi differiscono esclusivamente per il tipo del primo parametro e quando inserisco la variabile nextValue come primo parametro ho un problema di "reference ambiguous". Come posso fare a specificare che voglio chiamare il secondo "addValue"? (Quello con il primo parametro di tipo double) Vi ringrazio in anticipo per le risposte. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quando si tratta di scegliere quale implementazione chiamare Java prende sempre quella più specifica. Nel tuo caso è di sicuro quella con double.
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
Quote:
Se provo a compilare con il codice che ho postato mi da il seguente errore in compilazione: error: reference to addValue is ambiguous, both method addValue(Number,Comparable,Comparable) in DefaultCategoryDataset and method addValue(double,Comparable,Comparable) in DefaultCategoryDataset match result.addValue(nextValue, "Experiment", value+1); |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Non dovrebbe succedere. C'è quel value+1 al posto di un Comparable che puzza di autoboxing. Prova a metterci un Double.valueOf(value+1) ed accendi un cero.
![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
Quote:
Ma non riesco a capire perché. In realtà ho messo un Integer.valueOf(value+1) al posto del terzo parametro perché quello è un intero, solo il primo è un double, non lo avevo specificato nei post precedenti. La cosa che mi rende perplesso è che comunque quel parametro è un Comparable in entrambi i metodi addValue. Se Java mi dice che il problema è della "reference ambiguous" tra i due metodi ed i due metodi differiscono solo per il primo parametro come mai ho risolto modificando il terzo?!? Mah misteri della programmazione.. in ogni caso ora funziona, o almeno me lo fa compilare. Grazie infinite! |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
se metti value +1.0 dovrebbe riconoscere auotomaticamente il tipo double
__________________
My gaming placement |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:36.