Ricerca…


introduzione

In questo argomento troverai un riepilogo delle nuove funzionalità aggiunte al linguaggio di programmazione Java in Java SE 7. Ci sono molte altre nuove funzionalità in altri campi come JDBC e Java Virtual Machine (JVM) che non saranno coperti in questo argomento.

Osservazioni

Miglioramenti in Java SE 7

Nuove funzionalità del linguaggio di programmazione Java SE 7

Binary Literals

// An 8-bit 'byte' value:
byte aByte = (byte)0b00100001;

// A 16-bit 'short' value:
short aShort = (short)0b1010000101000101;

// Some 32-bit 'int' values:
int anInt1 = 0b10100001010001011010000101000101;
int anInt2 = 0b101;
int anInt3 = 0B101; // The B can be upper or lower case.

// A 64-bit 'long' value. Note the "L" suffix:
long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L;

La dichiarazione try-with-resources

L'esempio legge la prima riga da un file. Usa un'istanza di BufferedReader per leggere i dati dal file. BufferedReader è una risorsa che deve essere chiusa al termine del programma:

static String readFirstLineFromFile(String path) throws IOException {
  try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    return br.readLine();
  }
}

In questo esempio, la risorsa dichiarata nell'istruzione try-with-resources è una BufferedReader . L'istruzione dichiarazione appare tra parentesi immediatamente dopo la parola chiave try. La classe BufferedReader , in Java SE 7 e successive, implementa l'interfaccia java.lang.AutoCloseable . Poiché l'istanza BufferedReader viene dichiarata in un'istruzione try-with-resource, verrà chiusa indipendentemente dal fatto che l'istruzione try venga completata normalmente o in modo brusco (come risultato del metodo BufferedReader.readLine che IOException una IOException ).

Sottolinea in Numeric Literals

L'esempio seguente mostra altri modi per utilizzare il carattere di sottolineatura in valori letterali numerici:

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

È possibile inserire caratteri di sottolineatura solo tra cifre; non puoi inserire caratteri di sottolineatura nei seguenti luoghi:

  • All'inizio o alla fine di un numero
  • Adiacente a un punto decimale in un letterale in virgola mobile
  • Prima di un suffisso F o L
  • Nelle posizioni in cui è prevista una stringa di cifre

Digitare un'inferenza per la creazione di istanze generiche

Puoi usare

Map<String, List<String>> myMap = new HashMap<>();

invece di

Map<String, List<String>> myMap = new HashMap<String, List<String>>();

Tuttavia, non è possibile utilizzare

List<String> list = new ArrayList<>();
list.add("A");

  // The following statement should fail since addAll expects
  // Collection<? extends String>

list.addAll(new ArrayList<>());

perché non può essere compilato. Si noti che il diamante spesso funziona nelle chiamate al metodo; tuttavia, si suggerisce di utilizzare il diamante principalmente per dichiarazioni variabili.

Stringhe nelle dichiarazioni switch

public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
     String typeOfDay;
     switch (dayOfWeekArg) {
         case "Monday":
             typeOfDay = "Start of work week";
             break;
         case "Tuesday":
         case "Wednesday":
         case "Thursday":
             typeOfDay = "Midweek";
             break;
         case "Friday":
             typeOfDay = "End of work week";
             break;
         case "Saturday":
         case "Sunday":
             typeOfDay = "Weekend";
             break;
         default:
             throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
     }
     return typeOfDay;
}


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow