Busy. Please wait.
or

show password
Forgot Password?

Don't have an account?  Sign up 
or

Username is available taken
show password

why


Make sure to remember your password. If you forget it there is no way for StudyStack to send you a reset link. You would need to create a new account.
We do not share your email address with others. It is only used to allow you to reset your password. For details read our Privacy Policy and Terms of Service.


Already a StudyStack user? Log In

Reset Password
Enter the associated with your account, and we'll email you a link to reset your password.

Remove ads
Don't know
Know
remaining cards
Save
0:01
To flip the current card, click it or press the Spacebar key.  To move the current card to one of the three colored boxes, click on the box.  You may also press the UP ARROW key to move the card to the "Know" box, the DOWN ARROW key to move the card to the "Don't know" box, or the RIGHT ARROW key to move the card to the Remaining box.  You may also click on the card displayed in any of the three boxes to bring that card back to the center.

Pass complete!

"Know" box contains:
Time elapsed:
Retries:
restart all cards




share
Embed Code - If you would like this activity on your web page, copy the script below and paste it into your web page.

  Normal Size     Small Size show me how

Java 8

Novas Inferências de tipo

ConceitoCódigo
Na linguagem Java devemos declarar os tipos das variáveis obrigatoriamente. Em Java declaramos o tipo da variável e somente podemos atribuir valores deste tipo. // Não compila por falta de inf. do tipo. public class InferenciaDeTipo { public static void main(String[] args){ int valor1 = 10; String valor2 = "Valor"; naoPermitido = 42; } }
Melhoras na inferência dos tipos genéricos // Java 7 foo(Utility.<Type>bar()); Utility.<Type>foo().bar(); // Java 8 foo(Utility.bar()); Utility.foo().bar();
Pode-se substituir os argumentos que necessitam da declaração de tipo para chamar o construtor de uma classe genérica com um conjunto vazio de parâmetros de tipo ( <> ). Este par de colchetes é informalmente chamado diamante. // Considere a seguinte declaração: Map<String, List<String>> myMap = new HashMap<String, List<String>>(); //Pode-se substituir por tipo parametrizado com o construtor diamante: Map <String, List <String>> myMap = new HashMap <> ();
Tipos de Destino: O tipo de destino de uma expressão é o tipo de dados que o compilador Java espera, dependendo de onde a expressão aparece. //Java 7 // construtor do método vazio processStringList (List <String> stringlist) //chama o método processStringList (Collections. <String> emptyList ()); //Java 8 // chama o método processStringList (Collections.emptyList ());
A inferência de tipos, introduzida no Java 7, também é aplicada às expressões lambda. //Exemplo de uso em expressão Lambda List<String> list = Arrays.asList(...); Collections.sort(list, (s1, s2) -> s1.length() - s2.length()); //Os tipos dos parâmetros s1 e s2 foram omitidos, o compilador sabe que a lista contém uma coleção de Strings
Inferência de tipos também se aplica à Funções de Ordem superior //A implementação é elegante e bem sucinta. Note que faz uso da inferência de tipos: o parâmetro p do tipo Photo não é explicitamente definido. List<Photo> photos = Arrays.asList(...) List<Photo> output = photos.filter(p -> p.getSizeInKb() < 10)
Created by: ferarte