Object[] arr = new Object[]{"x","y","z"}; java.util.List list = Arrays.asList(arr);
terça-feira, 26 de junho de 2012
Converter Array para java.util.List
quarta-feira, 20 de junho de 2012
Eclipse instalação e actualização de plug-ins
Eclipse Update Manager
O Eclipse dispõem de um Update Manager que permite instalar ou actualizar componentes do software.Componentes de software instalados são chamados de features que são compostas por plug-ins.
Para actualizar a instalação do Eclipse, seleccionar Help > Check for Updates. O sistema irá procurar por actualizações dos componentes já instalados.
Para instalar uma nova funcionalidade, seleccionar Help > Install New Software.
Seleccionar no campo Work with o URL de que pretende instalar o novo software.
Para adicionar um novo update site, clicar em Add e introduzir o novo URL, assim como o nome para o novo site.
Por vezes é necessário desmarcar a opção Group items by category, porque nem todos os plug-ins estão categorizados.
Instalação manual de plug-ins
Se quiser instalar um plug-in que não está disponível em nenhum update site, pode utilizar a pasta dropins, que se encontrar na pasta de instalação do Eclipse.
Para adicionar um plug-in à instalação do Eclipse, basta colocar o ficheiro JAR do plug-in, na pasta dropins e reiniciar o Eclipse. O Eclipse deve detectar o novo ficheiro e instala-lo.
Eclipse Marketplace
Também é possível instalar novos plug-ins, através do Eclipse Marketplace. A vantagem deste método, é que é possível procurar por componentes, descobrir componentes populares e ver descrições e pontuações.Para Abrir, seleccionar Help > Eclipse Marketplace.
Fonte: vogella
Ordenar array rapidamente
Existem vários algoritmos para ordenação de arrays, mas se precisarmos de uma forma rápida, podemos recorrer à classe java.util.Arrays. Éste método é baseado no algoritmo Merge-sort.
package com.blogspot.aefdev ; import java.util.Arrays; public class Teste { public static void main(String[] args) { String arr[] = {"A", "a", "1", "Zz"}; Arrays.sort(arr, String.CASE_INSENSITIVE_ORDER); for(String str:arr) { System.out.println(str); } } }
1 A a Zz
terça-feira, 19 de junho de 2012
Singleton Pattern
A singleton Pattern é um design pattern que restringe a instanciação de uma classe a um objecto. Isto é útil quando pretendemos que não sejam utilizada mais que uma instância do da mesma classe.
Todas as solução são Thread-Safe.
Utilizando "double-checked locking", verificamos se a instância já existe, se não, depois sincronizamos.
Todas as solução são Thread-Safe.
Inicialização Lazy
public class Singleton { private static Singleton instance = null; private Singleton() { //TODO Completar construtor } public synchronized static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return instance; } }
Inicialização Eager
Se o programa precisar sempre de uma instância ou se o custo de criação de uma instância não for muito elevado em termos tempo/recursos, pode utilizar a inicialização eager.public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() { //TODO Completar construtor } public static Singleton getInstance() { return instance; } }
Inicialização Static block
Esta solução permite algum pré-processamento, por exemplo, para verificação de erros.public class Singleton { private static final Singleton instance; static { try { instance = new Singleton(); } catch (IOException e) { throw new RuntimeException("Erro ão inicializar", e); } } private Singleton() { //TODO Completar construtor } public static Singleton getInstance() { return instance; } }
"Double-checked locking"
Esta solução permite reduzir o uso do synchronized no método getInstance().Utilizando "double-checked locking", verificamos se a instância já existe, se não, depois sincronizamos.
public class Singleton { private volatile static Singleton instance = null; private Singleton() { //TODO Completar construtor } public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
Emun
Desde o Java 5.0, a forma mais simples de criar um Singleton é através do tipo Enum. Com esta abordagem tiramos partido da garantia do Java de que qualquer valor de um enum só é inicializado uma vez.
public Enum Singleton { INSTANCE; public void execute(String arg) { //TODO completar } }Exemplo:
Singleton.INSTANCE.execute("qualquer coisa");
Como criar um plug-in Eclipse a partir de um ficheiro JAR
Infelizmente nem todo código Java está estruturado como Eclipse plugins e por vezes é necessário utilizar código Java disponível em arquivos JAR (Padrão Java).
Felizmente a integração dessas livrarias no Eclipse é razoavelmente simples.
Este processo é normalmente designado de "bundling".
Para exemplificar vou utilizar o Driver para Java do MongoDB.
Primeiro efectuamos o download do ficheiro JAR, que no meu caso fui "mongo-2.8.0.jar".
Cria um novo projecto: File > New > Project... > Plug-in Development > Plug-in from existing JAR archives. Na pagina seguinte identificar os JARs que quer no plugin. Clicar em Add External... e seleccionar o ficheiro mongo-2.8.0.jar. Clicar Next para visualizar a seguinte pagina.
Para exemplificar vou utilizar o Driver para Java do MongoDB.
Primeiro efectuamos o download do ficheiro JAR, que no meu caso fui "mongo-2.8.0.jar".
Cria um novo projecto: File > New > Project... > Plug-in Development > Plug-in from existing JAR archives. Na pagina seguinte identificar os JARs que quer no plugin. Clicar em Add External... e seleccionar o ficheiro mongo-2.8.0.jar. Clicar Next para visualizar a seguinte pagina.
![]() |
Preencher os campos Project name e plug-in Name. Quando o finalizar o Wizard, deve ter o mongodb java drive plug-in que será semelhante à seguinte figura.
Ao visualizar o MANIFEST.MF podemos ver que o cabeçalho Export-Package, lista os packages disponíveis para os outros plug-ins.
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Mongodb Driver Bundle-SymbolicName: com.mongodb Bundle-Version: 1.0.0 Bundle-ClassPath: . Bundle-Vendor: mongodb.com Export-Package: com.mongodb, com.mongodb.gridfs, com.mongodb.io, com.mongodb.util, org.bson, org.bson.io, org.bson.types, org.bson.util, org.bson.util.annotations Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Subscrever:
Mensagens (Atom)