Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso
Titan Army P2712V è un monitor da 27 pollici che unisce due anime in un unico prodotto: da un lato la qualità visiva del 4K UHD a 160 Hz, dall'altro la velocità estrema del Full HD a 320 Hz. Con pannello Fast IPS, HDR400, Adaptive-Sync, illuminazione RGB e regolazioni ergonomiche, punta a soddisfare sia i giocatori competitivi che i content creator
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-06-2013, 11:14   #1
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
[JAVA] Scrittura codice in modo elegante

c'è qualcosa di più elegante di questo???
Codice:
			calendarId = request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID) == null ? "all" : request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID);
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 11:22   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Se non è un problema usare variabili locali per aumentare la leggibilità allora io di solito preferisco fare così:
Codice:
id = request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID);
calendarId = (id != null) ? id : "all";
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 26-06-2013 alle 11:24.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 11:29   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2776
Concordo con banryu79. Altrimenti se hai molte istruzioni di quel tipo puoi crearti un metodo statico...

Per curiosità, in C# c'è questo:
Codice:
calendarId = request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID) ?? "all";
http://msdn.microsoft.com/en-us/libr...=vs.80%29.aspx

Bellissimo secondo me, anche se spesso lavorando con stringhe finisco per non usarlo perché devo verificare anche che la stringa non sia vuota.
wingman87 è online   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 11:36   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Per curiosità, in C# c'è questo:
Codice:
calendarId = request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID) ?? "all";
Bellissimo secondo me, anche se spesso lavorando con stringhe finisco per non usarlo perché devo verificare anche che la stringa non sia vuota.
In Java il cosidetto "Elvis operator" non c'è, ma la fortuna maggiore nell'usare Java come piattaforma è che la fuori ci sono un fottìo di linguaggi che compilano bytecode, ad esempio Kotlin e lui l'Elvis operator ce l'ha, oltre ad avere altri costrutti carini per assicurare la Null-safety.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 11:46   #5
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Se non è un problema usare variabili locali per aumentare la leggibilità allora io di solito preferisco fare così:
Codice:
id = request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID);
calendarId = (id != null) ? id : "all";
non è un problema, ma la mia non è una necessità lessicale, ma una semplice curiosità
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Concordo con banryu79. Altrimenti se hai molte istruzioni di quel tipo puoi crearti un metodo statico...

Per curiosità, in C# c'è questo:
Codice:
calendarId = request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID) ?? "all";
http://msdn.microsoft.com/en-us/libr...=vs.80%29.aspx

Bellissimo secondo me, anche se spesso lavorando con stringhe finisco per non usarlo perché devo verificare anche che la stringa non sia vuota.
ecco, cercavo qualcosa di simile in java, che intuisco non ci sia.
anche io mi trovo con controllare stringhe non vuote o non nulle...il classico metodo nelle librerie di progetto "stringEmpity"
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 11:47   #6
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Dai un occhiata alla libreria guava di Google. C'è una classe che si chiama Optional che modella quello che vuoi fare. Crei un oggetto così:
Codice:
Optional<String> id = Optional.of(request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID));
Quando devi leggere il valore:
Codice:
id.or("all");
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 11:57   #7
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Dai un occhiata alla libreria guava di Google. C'è una classe che si chiama Optional che modella quello che vuoi fare. Crei un oggetto così:
Codice:
Optional<String> id = Optional.of(request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID));
Quando devi leggere il valore:
Codice:
id.or("all");
interessante.

Comunque mi sembra di capire che "l'elvis operator" è stato implementato da java 1.7, quindi è utilizzabile in modo diretto
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 11:58   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Oppure si scrive lui una classe utility (oltre ad essere effettivamente utile, è anche un buon esercizio):
Codice:
...
public class Option<T> {
    
    public static <T> Option<T> of(T arg) {
        return new Option<>(arg);
    }

    private final T value;    
    
    public Option(T value) {
        this.value = value;
    }

    public boolean isEmpty() {
        return value == null;
    }

    public boolean isDefined() {
        return value != null;
    }

    public T getOr(T alt) {
        return isEmpty() ? alt : value;
    }

    public T get() {
        return value;
    }
    
    public boolean hasValue(T value) {
        return isDefined() && get().equals(value);
    }

    @Override public String toString() {
        return String.format("Option[%s]", get());
    }
}
E quindi (come Vicius):
Codice:
Option<String> id = Option.of(request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID));
calendarId = id.getOr("all");
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 26-06-2013 alle 12:13.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 12:05   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da franksisca Guarda i messaggi
Comunque mi sembra di capire che "l'elvis operator" è stato implementato da java 1.7, quindi è utilizzabile in modo diretto
Come scusa?
Language Enhancements in Java 7
Direi di no
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 12:20   #10
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Oppure si scrive lui una classe utility (oltre ad essere effettivamente utile, è anche un buon esercizio):
Codice:
...
public class Option<T> {
    
    public static <T> Option<T> of(T arg) {
        return new Option<>(arg);
    }

    private final T value;    
    
    public Option(T value) {
        this.value = value;
    }

    public boolean isEmpty() {
        return value == null;
    }

    public boolean isDefined() {
        return value != null;
    }

    public T getOr(T alt) {
        return isEmpty() ? alt : value;
    }

    public T get() {
        return value;
    }
    
    public boolean hasValue(T value) {
        return isDefined() && get().equals(value);
    }

    @Override public String toString() {
        return String.format("Option[%s]", get());
    }
}
E quindi (come Vicius):
Codice:
Option<String> id = Option.of(request.getParameter(SoggettiConstant.SUBJECT_CALENDAR_ID));
calendarId = id.getOr("all");
non ho "bisogno" dell'esercizio

anche perchè già faccio qualcosa di simile..
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Come scusa?
Language Enhancements in Java 7
Direi di no
leggendo in giro sembrava di si, forse è qualche openpoint sulla jdk che avevano proposto e poi non implementato, magari lo implementeranno in java8 o magari no

grazie ancora
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 13:05   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da franksisca Guarda i messaggi
non ho "bisogno" dell'esercizio
Tutti ne abbiamo bisogno, e sempre
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 14:20   #12
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Tutti ne abbiamo bisogno, e sempre
si, come tutti abbiamo bisogno di 48 ore al giorno

purtroppo sai meglio di me che i tempi lavorativi impediscono (con una cattiva progettazione e/o una cattiva analisi) di scrivere il codice come vorremmo. su un altro progetto ho potuto scrivermi un bella libreria personale che faceva qualcosa del genere, ma qui non ho potuta usarla per limiti applicativi
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2013, 15:24   #13
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da franksisca Guarda i messaggi
leggendo in giro sembrava di si, forse è qualche openpoint sulla jdk che avevano proposto e poi non implementato, magari lo implementeranno in java8 o magari no

grazie ancora
Si erano stati proposti due nuovi operatori ?: e ?. ma sono stati rifiutati. Per quanto riguarda java non credo li vedremo mai. Se vuoi giocarci c'è sempre groovy che li ha implementati.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2013, 18:24   #14
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5745
L'eleganza secondo me passa anche attraverso l'uso delle parentesi.
Personalmente trovo che la leggibilità sia molto migliore aprendo le graffe a capo in una nuova linea. Questo permette di identificare immediatamente i metodi, i blocchi e i cicli, sfruttando anche l'indentazione del codice, senza dover andare a caccia delle parentesi.

Mi piace anche rendere meno sintetico il codice esplicitando il più possibile per far assumere un significato univoco.
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
L'intelligenza artificiale canceller&agr...
Battlefield 6: analisi grafica e DLSS
Gauss Fusion presenta GIGA: l'Europa acc...
Lo sapete che anche le auto elettriche d...
Oltre un miliardo di dati sensibili sott...
iPhone 17, segni sui modelli in esposizi...
Sviluppatore Microsoft confessa: la cele...
Sfrutta l'IA per migliorare a lavoro, l'...
iPhone 18 Fold: un leak indica i materia...
Instagram testa nuove opzioni per contro...
Elon Musk raggiunge un accordo con l'ex ...
Meta Quest 3S da 256 GB in offerta su Am...
L'energia solare è la più ...
I furgoni elettrici sono già pi&u...
ChatGPT 'pubblicato' per errore: la gaff...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v