getInstance() não vai retornar uma
única instância, olha só:
public class Numeros{
/*
Isso aqui vai causar um
StackOverflowError
assim que você chamar
getInstance()
*/
private Numeros numeros = new Numeros();
/*
Construtor privado, está certo, já que a
intenção
é criar uma classe
Singleton
*/
private Numeros() {}
/*
Esse método não está acessível às classes
externas,
assim para você poder acessá-lo precisa
criar uma instância antes,
o que não será possível pois o construtor
é privado...
*/
public
Numeros getInstance() {
return
this.numeros;
}
public double
arredondaValor(double valor)
{
//...
}
//e aqui tem outros métodos.
} Abaixo segue a maneira certa de você tornar
sua classe Singleton:
public class
Numeros {
private static Numeros
numeros;
private Numeros() {}
public static synchronized Numeros getInstance()
{
if (numeros == null) {
numeros = new Numeros();
}
return numeros;
}
public double
arredondaValor(double valor)
{
//...
}
// e aqui tem outros métodos.
}
|
- [java-list] Métodos static Marcos Tadeu P. Vargens
- RES: [java-list] Métodos static Eric Trindade
- Re: [java-list] Métodos static Ricardo Artur Staroski
- Re: [java-list] Métodos static Marcos Tadeu P. Vargens
- Re: [java-list] Métodos static José Voss Junior
- Re: [java-list] Métodos static Marcos Tadeu P. Vargens
- Re: [java-list] Métodos static Bruno Borges