2015-05-22 3 views
7

Vorrei esaminare e trasformare una specifica istruzione in un modulo try-with-ressources. Ma ho la sensazione che la sintassi dello declarative hints format mi eluda per questo.Sintassi di suggerimento dichiarativo di Netbeans per una dichiarazione all'interno di un try-block

ho provato:

<!description="Stmt into try-with-resources"> 
try { 
    $before$; 
    someMethod($arg1, $arg2, $arg3); 
    $after$; 
} catch $catches$ 
=> 
try (Resource res = acquire($arg1, $arg2, $arg3))  { 
    $before$; 
    res.use(); 
    $after$; 
} catch $catches$ 

Ma applicato sul mio codice modello non corrisponde. Ecco alcune sezioni di codice di esempio che mi aspettavo corrispondessero:

public boolean step(String input) { 
    String id = getId(ID); 
    try { 
    SomethingBefore(); 
    someMethod(10, "label", name); 
    return true; 
    } catch (Exception ex) { 
    log.error("problem", ex); 
    return true; 
    } 
} 

Qualche idea del motivo per cui questo non corrisponde? Esp. perché penso che l'esempio dalla documentazione corrisponde la mia, fatta eccezione per il finally:

try { 
    $statements$; 
} catch $catches$ 
    finally { 
    $finally$; 
} 

Aggiornamento: Sembra che le Jackpot -Regole utilizzare la stessa sintassi, probabilmente perché utilizza lo stesso codice di base.

risposta

1

Questo refactoring è molto macchinoso e scarsamente documentato. È necessario modificare il vostro modello in base a questo esempio

<!description="Stmt into try-with-resources"> 
try { 
    $before$; 
    $name($arg1, $arg2, $arg3); 
    $after$; 
} catch $catches$ 
=> 
try (Resource res = acquire($arg1, $arg2, $arg3))  { 
    $before$; 
    res.use(); 
    $after$; 
} catch $catches$ 

Tuttavia, non so come gestire questo se si dispone di altri metodi di chiamata 3 argomenti pure.

0

Secondo me nel codice viene utilizzato il ritorno che non penso possa essere utilizzato nel posto di $ dopo $. Quindi se rimuovi quello dal tuo codice potrebbe corrispondere.

Problemi correlati