Eu tenho a seguinte classe:
public class Test {
public static int a = 0;
public int b = 1;
}
É possível usar a reflexão para obter apenas uma lista dos campos estáticos? Estou ciente de que posso obter uma matriz de todos os campos com Test.class.getDeclaredFields()
. Mas parece que não há como determinar se uma Field
instância representa um campo estático ou não.
java
reflection
static
field
Anders
fonte
fonte
Respostas:
Você pode fazer assim:
fonte
Eu me deparei com essa questão por acidente e senti que precisava de uma atualização do Java 8 usando fluxos:
Obviamente, essa amostra é um pouco embelezada para facilitar a leitura. Na verdade, você provavelmente escreveria assim:
fonte
Se você pode adicionar dependências de código aberto ao seu projeto, também pode usar FieldUtils.readDeclaredStaticField (Test.class, "a")
fonte
Isso é simples, você pode usar o Modificador para verificar se um campo é estático ou não. Aqui está um código de amostra para esse tipo de tarefa.
fonte