Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [java] comparare paramentro stringa su int

    Ciao a tutti,
    forse sto per sparare na cag...

    Comunque nella scienza ci vuole anche quello.

    Ho un classe che ha 115 variabili int

    e devo fare un metodo che mi restituisca il valore di una di quelle variabili che corrisponda però al nome passato come parametro.

    es.
    codice:
    private int aaaa = 0;
    private int aaab = 0;
    etc. fino a 115
    
    public int getAll(String code){
    return code (ma non il valore del parametro. Ho bisogno del valore della variabile int che corrisponde (come nome) al parametro stringa.)
    }
    Un aiutino...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non l'ho mai usata, ma credo che dovresti lavorare un po' di Riflessione:

    http://java.sun.com/developer/techni...n/index.html#4
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ammesso che tu sappia che per fare quello che ti serve forse ci sono modi migliori
    codice:
    String par = "aaaa";
    Class c = Class.forName("package.Classe");
    Field f = c.getDeclaredField(par);
    int value = (Integer)f.get(c.newInstance());
    e se le variabili sono private puoi accedere solo se questo codice lo esegui dalla classe che le contiene, oppure fai dei metodi getter e accedi a quelli, che forse è meglio

  4. #4
    ammesso che tu sappia che per fare quello che ti serve forse ci sono modi migliori
    Sono aperto a tutti i suggerimenti...

    In pratica questa classe rappresenta un recordset con un id, date, e 115 variabili int tutte nominate con questa logica:

    aaaa
    aaab
    aaac
    aaad
    etc.

    La classe al momento contiene solo tutte le variabili con scope private, constructor di default e uno attaraverso un recordset, e poi tutti i getter e setter.

    Devo far in modo che un'altra classe possa accedere a tutte le vaiabili e controllare che il loro valore sia diverso da 0.

    Dato che la classe esterna deve controllare tutte le vaiabili, ho pensato semplicemente di mettere i valori dentro un array, ma poi mi sono bloccato perchè non capivo come associare l'indice dell'array con il codice (aaac) del campo.
    Forse con enum...
    :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    e un HashTable non ti andrebbe bene lo stesso? Alla fine, tu cerchi una corrispondenza Chiave-Valore, e la struttura dati che gestisce naturalmente la cosa è proprio l'hashtable
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    E usare un HashTabel è brutto....?Mi sembra una cosa un po più elegante che usare la riflessione come già ti ha detto floyd (che per inciso poteva anche aggiungerlo il suggerimento se mi posso permettere la critica , spero non si offenda.)
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Originariamente inviato da Andrea1979
    e un HashTable non ti andrebbe bene lo stesso? Alla fine, tu cerchi una corrispondenza Chiave-Valore, e la struttura dati che gestisce naturalmente la cosa è proprio l'hashtable
    Basta io do le dimissioni da questo forum...questa gente che mi precede sempre
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    se usi i caratteri dalla a alla z
    codice:
    String id = "aaac";
    int index = 0;
    for (int i=id.length() - 1; i>=0; i--) {
      int c = id.charAt(i) - 'a';
      index += (c * Math.pow(26d, id.length() - i - 1));
    }

  9. #9
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    e chi si offende? non mi era venuto in mente

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    VVoVe: LMAO
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.