|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
java
avendo questo pezzo di codice:
Codice:
if (tipo == "min")
{
while (giorno.hasNext())
{
press = giorno.next();
somma += press.getPress(tipo);
conta++;
}
}
Ultima modifica di bodomTerror : 22-11-2006 alle 11:30. |
|
|
|
|
|
#2 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Devi fare: if (tipo.equals ("min")) Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
devo mettere min o max alla creazione dell'oggetto nn devo confrontare, ti posto il metodo
Codice:
public int mediaPress(String tipo)
{
int somma = 0;
int conta = 0;
int media = 0;
Iterator<Pressione> giorno = Pressione.iterator(); // java.util.Iterator
Pressione press;
if (tipo == "min")
{
while (giorno.hasNext())
{
press = giorno.next();
somma += press.getPress(tipo);
conta++;
}
}
}
Codice:
public int getPress(String s)
{
if(s.equals("min"))
return min;
if(s.equals("max"))
return max;
else return 0;
}
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
kiamando il metodo mediaPress mi kiede di inserire min o max come stringa, se min questo -> press.getPress(tipo) mi ritorna il valore min se no max...ho provato a mettere due iterator e il metodo funziona
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Penso che valga la pena chiarire un punto per quanti leggano quel codice e abbiano qualche dubbio. Come dice andbin, se tipo è uno String l'espressione:
tipo == "min" restituisce true se e solo se il reference tipo punta allo stesso valore restituito dall'espressione "min". Se il valore di tipo è il risultato di un'espressione costante di tipo String, allora tipo == "min" restituisce true non perchè le due stringhe sia letteralmente uguali ma perchè il prodotto di un'espressione costante di tipo String è un puntatore ad una stringa immagazzinata in un pool della jvm. Dunque se: String min = "min"; e tipo = min; allora tipo == "min" è true perchè: "min" == "min" è true. D'altronde basta cambiare una virgola perchè tutto vada a catafascio. Se min non punta più al prodotto di un'espressione costante di tipo String, ad esempio: String min = new String("min"); allora: min == "min" sarà inevitabilmente false, a meno che non si passi da min alla sua versione interiorizzata: min = min.intern(); |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
nn sono molto esperto, ma se nn cambio la stringa "min" nella sottoclasse dovrebbe essere a posto il metodo o no
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Finchè "min" resta "min" e "max" resta "max" e tipo assume il valore di un'espressione costante di tipo string corrispondente alla sequenza di caratteri "min" o "max" (che nel tuo caso ritengo siano le espressioni di inizializzazione delle variabili min e max) sei a cavallo.
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
ok
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
se volessi invece confrontare il valore di min e nn la stringa "min" così per esempio
Codice:
if (press.getPress(min) < 50) |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Perchè quel confronto sia valido il valore restituito dal metodo getPress deve essere di un tipo convertibile in numerico. Cioè uno qualsiasi tra primitivi Java diversi da boolean e tra le classi involucro diverso da Boolean.
Insomma, getPress(min) deve restituire un numero. Il getPress che hai incollato precedentemente restituisce un numero intero per cui direi che se non va il problema sta nel tipo dell'argomento. Se min è un int allora l'invocazione press.getPress(min) non va perchè il metodo getPress richiede come parametro una stringa (String). Forse volevi dire: if(press.getPress("min") < 50) ? |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
dunque come mi hai detto funziona xò ce un altro problema "missing return statement" ma nn posso fare altrimenti o perlomeno nn mi viene in mente...
Codice:
/**
* Metodo patologiaPressoria: restituisce, la patologia pressoria prevalente negli ultimi 7 giorni
* (minima bassa se < 50, massima alta se >150, nessuna se non ci sono patologie).
*/
public String patologiaPressoria()
{
int minBassa = 0;
int maxAlta = 0;
Iterator<Pressione> pressioneMin = Pressione.iterator(); // java.util.Iterator
Iterator<Pressione> pressioneMax = Pressione.iterator();
Pressione press; // oggetto press di tipo Pressione
while (pressioneMin.hasNext()) // oggetto successivo...
{
press = pressioneMin.next(); // acquisizione dell'oggetto
if (press.getPress("min") < 50)
minBassa++;
else if (press.getPress("max") > 150)
maxAlta++;
}
if (minBassa != 0)
{
if (minBassa > maxAlta)
return "minima bassa";
}
else if (maxAlta != 0)
{
if (maxAlta > minBassa)
return "minima alta";
}
else if ((minBassa>0 && minBassa==maxAlta))
{
return "minima bassa == massima alta";
}
else return "nessuna";
}
Ultima modifica di bodomTerror : 22-11-2006 alle 21:09. |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:43.


















