sábado, 28 de fevereiro de 2015

Exemplo simples de Lambda no Java 8

Entre as várias novidades do Java 8 os lambdas tem recebido uma boa atenção. Você sabe o que é um lambda, e como usar? Falando da forma mais simples possível um lambda é uma maneira bem mais limpa de implementar uma interface com um só método, essas interfaces são agora chamadas de funcionais. Podemos usar um lambda agora, por exemplo, para percorrer uma lista. A interface java.lang.Iterable ganhou um novo método o forEach (graças aos Default Methods) que recebe um Consumer uma interface funcional, visto que ela só tem um método abstrato o accept. O código ficaria mais ou menos assim:

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author daniel
 */
public class Java8Tests {

    public static void main(String[] args) {
        
        List frutas = new ArrayList();
        frutas.add("banana");
        frutas.add("limão");
        frutas.add("laranja");
        frutas.add("maçã");
        frutas.add("pêra");
        
        frutas.forEach(fruta -> System.out.println(fruta));
        
    }
    
}

O treco de código : fruta -> System.out.println(fruta) é um lambda do Java 8. Esse é provavelmente o uso mais simples de um lambda é claro que ele não foi criado apenas para este fim, por isso aprofunde-se no assunto.

sexta-feira, 27 de fevereiro de 2015

Importando enumeradores Java em páginas JSF

Recentemente tive um pequeno problema para usar enum's nas minhas páginas com JSF. Por exemplo gostaria de usar uma enum para determinar se com campo deveria estar desabilitado ou não. Nas minhas pesquisas vi que o até o JSF 2.2 não é possível usar constantes ou qualquer outro campo static em expressões EL. Também não queria encher os meus ManagedBens com get's e set's para cada enum que precisasse. Encontrei a solução na biblioteca PrimeFaces Extensions, que possui tags para a importação de constantes, tornado possível o uso das mesmas em expressões EL. Ficaria mais ou menos assim:
   package br.com.duosoftware.exemplo.enums;

   public enum Status{
       EM_ANALISE, CONFIRMADO, RECUSADO
   }
E na página:
   
     
   Status: #{Status.CONFIRMADO}
Veja mais em: PrimeFaces Extensions Showcase.

quinta-feira, 26 de dezembro de 2013

Activity, afinal o que é?

Activity é uma classe do pacote "android.app" ela é usada em qualquer aplicativo seja ele um hello word ou um game complexo. Uma Activity é utilizada para tratar eventos da tela, como um click em um botão, recuperar o valor digitado em um campo, mostrar uma mensagem e etc, ou seja, ela gerencia a interface com o usuário. Veja um exemplo de uma classe Activity mostrando o texto "Olá Mundo" em tela:
public class Principal extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_principal);

  Toast.makeText(getBaseContext(),"Olá Mundo", Toast.LENGTH_LONG).show();

 }

}

Veja que as Activity's devem sobrescrever o método 'onCreate' que inicializam a tela. Mas isso não é tudo sobre Activity's, um ponto interessante e que deve ser considerado/estudado é o seu ciclo de vida. Veja uma descrição breve dos métodos mais importantes acima:

onCreate() - Chamado quando a Activity é criada. Se for executado com sucesso passa a execução para o método onStart();

onStart() - Chamado após o onCreate, quando a Activity passa a ser visível para o usuário;

onResume() - Chamado quando a Activity passa a ser utilizada pelo usuário e também quando ela volta do background;

onPause() - Chamado quando uma Activity vai para background (outra Activity toma a sua frente), geralmente utilizado para salvar o estado da tela, para que este possa ser recuperado quando a Activity retomar o foco.

onStop() - Chamado após onPause() para parar a Activity, enquanto a que tomou a sua frente executa;

onDestroy() - Destrói a Activity para liberar espaço em memória;

+Tiago Alves +Paulo Victor - Para o grupo de Android.

quarta-feira, 11 de dezembro de 2013

Variáveis - Java

Definição 

Em programação variáveis são elementos capazes de guardar valores. São espaços na memória do computador. As variáveis retem informações apenas durante a execução do programa ao qual pertencem. Toda variável possui um nome identificador;

Tipos

O Java é uma linguagem tipada, isso quer dizer que ao criar uma variável o programador deve sempre informar qual é o seu tipo, ou seja, que tipo de informação aquela variável guardará (valores numéricos, textos, etc).

Alguns exemplos de tipos de variáveis são:

int - armazena valores inteiros (sem parte fracionária) Ex: 10;
float - armazena valores decimais (com parte fracinária) Ex: 10.5;
double - armazena valores decimais. Tem maior capacidade que o float;
boolean - armazena apenas os valores true (verdadeiro) ou false (falso);
String - armazena textos (letras, números, etc) Ex: "duo software";

Sintaxe e exemplo

Para declarar uma variável, no java, usamos a seguinte sintaxe:

<tipo> <nomeIdentificador> ;

Veja o exemplo:

    int idade; //variável do tipo inteiro para armazenar o valor de uma idade
    double valor = 103.10; //variável double armazenando um valor fracionário
    String frase = "post sobre variáveis"; //variável String armazenando uma frase, veja que a frase está entre aspas duplas

Dúvidas? Comente abaixo.

 

sábado, 7 de dezembro de 2013

Hello Word - Java

Veja abaixo o código para a criação de um programa simples em java (conhecido como hello word). Ele apenas imprime uma a frase "Meu primeiro programa Java!" no console. Alguns se assustam com o tamanho do código para fazer algo simples, mas logo percebem como é fácil.
   

 public class MeuPrimeiroPrograma{ //Aqui temos a declaração de uma classe       

    public static void main(String[] args){ //O método main é o ponto de entrada para a execução do programa
  
        System.out.println("Meu primeiro programa Java!"); //Método para imprimir algo no console. 
         
    }          

 }
 
Alguns erros comuns de quem está começando são
1 - Esquecer de colocar o ';' (ponto e virgula) no final do método println como abaixo:
   

   System.out.println("Meu primeiro programa Java!")//Sem o ';' o compilador irá reclamar e não será possível executar o programa
 
2 - Colocar a frase a ser impressa entre aspas simples ao invés de duplas, veja:
   

   System.out.println('Meu primeiro programa Java!')//Aspas simples foram usadas, o compilador também vai reclamar
 
3 - Escrever o nome da classe "System" com a primeira letra minuscula:
   

   system.out.println('Meu primeiro programa Java!')//Um 's' foi usado ao invés de um 'S'. 
 
O java é case Sensitive, isto é, ele diferencia letras maiusculas de minusculas, logo 'System' é diferente de 'system'

Translate