Usando ‘Static Import’ e ‘Import’ para importar membros estáticos declarados em uma classe.

 

Os enuns declarados dentro de uma classe por padrão são estáticos

 
 

public class Teste {

public static void main(String[] args){

EnumClass.MyEnum p = EnumClass.MyEnum.J;

System.out.println(p);

}                

}

 
 

class EnumClass{

public enum MyEnum {P, J, H, L};

}

Output:

J

 

Dada a seguinte classe no determinado pacote:

package pack1;

public class EnumClass {

public enum MyEnum{A,B,C};

public enum MyEnum2{D,E,F};

public static int i = 10;

}

 

Vamos demonstrar como utilizar desta classe:

 
 

(import static pack1.EnumClass.MyEnum;)

 
 

Neste caso, importou o membro estático ‘MyEnum‘ da classe EnumClass.

 
 

import static pack1.EnumClass.MyEnum;

 
 

public class Teste {

public static void main(String args[]){

for(MyEnum e: MyEnum.values()){

System.out.print(e);

}

// System.out.print(i); !!! membro estático de EnumClass não importado !!!

// new EnumClass(); // não é possível instanciar a classe

}

}

Output:

ABC

 
 

(import static pack1.EnumClass.*;)

 
 

Neste caso, importou todos os membros estáticos de EnumClass.

 
 

import static pack1.EnumClass.*;

 
 

public class Teste {

public static void main(String args[]){

for(MyEnum e: MyEnum.values()){

System.out.print(e);

}

System.out.print(i);

 
 

// new EnumClass(); // não é possível instanciar a classe

}

}

Output:

ABC10

 

(import pack1.*;)

 
 

Neste caso importamos todas as classes do pacote pack1.

Podemos usar ‘MyEnum‘ e ‘MyEnum2‘ (Os dois “inner” enums declarados nesta classe)prefixados do nome da classe ao qual eles pertencem.

Também é possível instanciar EnumClass.

 
 

import pack1.*;

 
 

public class Teste {

public static void main(String args[]){

for(EnumClass.MyEnum e: EnumClass.MyEnum.values()){

System.out.print(e);

}

 
 

System.out.println();

 
 

for(EnumClass.MyEnum2 e: EnumClass.MyEnum2.values()){

System.out.print(e);

}

 
 

// System.out.print(i)
// não importa todos os membros estático, apenas os enums

 
 

new EnumClass(); // ok, podemos instanciar a classe

 
 

}

}

Output:

ABC

DEF

 

(import pack1.EnumClass.MyEnum; )

 
 

Neste caso, importamos apenas ‘MyEnum‘.

 
 

import pack1.EnumClass.*;

 
 

public class Teste {

public static void main(String args[]){

for(MyEnum e: MyEnum.values()){

System.out.print(e);

}

 
 

System.out.println();

/*

for(MyEnum2 e: MyEnum2.values()){

System.out.print(e);

}

*/

 
 

// System.out.print(i)
// não importa todos os membros estático, apenas os enums

// new EnumClass(); // não é possível instanciar a classe

}

}

Output:

ABC

 
 

(import pack1.EnumClass.*; )

 
 

Neste caso, importamos ‘MyEnum‘ e ‘MyEnum2‘ (Os dois “inner” enums declarados nesta classe).

 
 

import pack1.EnumClass.*;

 
 

public class Teste {

public static void main(String args[]){

for(MyEnum e: MyEnum.values()){

System.out.print(e);

}

 
 

System.out.println();

 
 

for(MyEnum2 e: MyEnum2.values()){

System.out.print(e);

}

 
 

// System.out.print(i)
// não importa todos os membros estático, apenas os enums

// new EnumClass(); // não é possível instanciar a classe

}

}

Output:

ABC

DEF

 

 

Dado que ‘java/’ é o diretório onde se encontra a classe ‘Teste.java’

 

Compilando:

\java> javac -cp . Teste.java

 
 

Executando:

\java> java -cp . Teste

 
 

Esta entrada foi publicada em Compilação e distribuição com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s