Autore Topic: Creazione nuovo costrutto possibile?  (Letto 1134 volte)

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Creazione nuovo costrutto possibile?
« il: 30 Marzo 2011, 08:14:16 CEST »
0
Ciao a tutti...sono un programmatore alle prime armi
Volevo sapere se fosse possibile e come realizzare un nuovo costrutto.
Mi spiego meglio cn un esempio:

Io ho la seguente classe

Class oggetto {
 Private boolean flag=false ;
 Public void set(){
  Flag=true;
 }
}

Nella mia activity ho:
....
ArrayList<oggetto> a = new ArrayList<oggetto>();

A.add(new oggetto());
A.add(new oggetto());

....


Adesso se voglio chiamare il metodo set di tutti gli oggetti del mio arraylist il metodo più veloce penso sia:

Iterator i = a.getelementslist();
While(i.has.next()){
 I.next().set();
}


Vorrei creare un costrutto che sostituisca quest ultima parte di codice...qualcosa tipo :

Foreach(a).set();

Dovrebbe chiamare il metodo set di ciascun elemento

Spero d essere stato chiaro

Esiste già?  Altrimenti come potrei realizzare una cosa del genere?

Grazie

Ps: non sono al pc quindi i pezzi d codice che ho scritto li ho scritti andando a memoria....probabilmente ci sarà qualche errore semantico....chiedo scusa ma spero che riusciate a interpretare uguale :)
Sent from my Nexus One using Tapatalk

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Creazione nuovo costrutto possibile?
« Risposta #1 il: 30 Marzo 2011, 09:00:33 CEST »
0
Quello che vuoi fare è legato strettamente al linguaggio che usi e, a meno di non usare javascript (che permette di espandere "classi" già esistenti), non puoi farlo se non andando ad agire sul parser del linguaggio.
Invece, mi chiedo se non è più facile farti una lista tua che estenda un'ArrayList e implementi un metodo che faccia quello che vuoi.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Creazione nuovo costrutto possibile?
« Risposta #2 il: 30 Marzo 2011, 09:22:04 CEST »
+1
Ciò che dice 7h38ugg3r è vero, già che programmi una cosa tua, creati le tue "rules"  :-P
Comunque il costrutto for-each in java esiste (e ci mancherebbe :D) e fa il suo dovere anche nelle collections, come nel tuo caso.
Codice (Java): [Seleziona]
for(type var : collection){
}
che nel tuo caso sarebbe
Codice (Java): [Seleziona]
for(oggetto o : a){
    o.set()
}

P.S : ma perchè hai postato in SDK/ADT/Emulatore  o_O
« Ultima modifica: 30 Marzo 2011, 09:23:36 CEST da teskio »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Creazione nuovo costrutto possibile?
« Risposta #3 il: 30 Marzo 2011, 09:23:20 CEST »
0
beh, non stavamo entrando nel merito dell'esistenza o meno di costrutti di questo genere.....^_^
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Creazione nuovo costrutto possibile?
« Risposta #4 il: 30 Marzo 2011, 09:24:59 CEST »
0
Bhè la domanda era quella però  :-P

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re: Re:Creazione nuovo costrutto possibile?
« Risposta #5 il: 30 Marzo 2011, 09:25:14 CEST »
0
Quello che vuoi fare è legato strettamente al linguaggio che usi e, a meno di non usare javascript (che permette di espandere "classi" già esistenti), non puoi farlo se non andando ad agire sul parser del linguaggio.
Invece, mi chiedo se non è più facile farti una lista tua che estenda un'ArrayList e implementi un metodo che faccia quello che vuoi.

Beh anche un metodo interno...farebbe comunque quel giro con l iterator o qlks di simile.....
E poi dovrei fare un metodo per ogni metodo (se ne avesse più d uno) della classe oggetto....
Vorrei fare qualcosa di più generico....
Non è possibile?

Sent from my Nexus One using Tapatalk

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re: Creazione nuovo costrutto possibile?
« Risposta #6 il: 30 Marzo 2011, 09:47:54 CEST »
0
Penso che la soluzione proposta da teskio faccia al caso mio....appena sarò al pc controllo grazie

Ps: pensavo fosse la sezione più adatta scusate...

Sent from my Nexus One using Tapatalk

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re: Creazione nuovo costrutto possibile?
« Risposta #7 il: 30 Marzo 2011, 10:15:45 CEST »
0
Brevemente: In java non è possibile fare una cosa del genere. Purtroppo direi perché è una soluzione molto elegante.
Da quanto sembra neanche in java7 sarà possibile :(

Sent from my HTC Desire
« Ultima modifica: 30 Marzo 2011, 10:19:54 CEST da Ricky` »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Creazione nuovo costrutto possibile?
« Risposta #8 il: 30 Marzo 2011, 10:31:34 CEST »
0
Bhè la domanda era quella però  :-P

la domanda era se è possibile e creare un nuovo costrutto. Io a quella ho risposto.
Poi, se non si conoscono tutti i costrutti disponibili, è un'altra cosa....^_^
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re: Creazione nuovo costrutto possibile?
« Risposta #9 il: 30 Marzo 2011, 11:03:33 CEST »
0
Diciamo che mi interessava sia sapere se già esisteva un costrutto del genere ...sia sapere se e come costruirne uno nuovo..
:) grazie:)

Sent from my Nexus One using Tapatalk