Problema com "non-static variable this cannot be referenced from a static context"

Olá. Eu não consigo compilar meu projeto pois o netbeans fica acusando o seguinte erro:

“non-static variable this cannot be referenced from a static context”

Segue o código aonde aponta o erro

public class AutomatoFND extends Automato implements Determinizavel, Serializable {

private static final long serialVersionUID = -8819083014087538715L;
	protected Map<Estado, Map<Simbolo, Set<Transicao>>> _transicoes;

	public AutomatoFND() {
		super();
	}

.....

private void reajustarFechos(final Map<Estado, FechoEpslon> m) {
			for (Estado e : m.keySet()) {
				final FechoEpslon f = m.get(e);
				final  FechoEpslon ftemp = new FechoEpslon(); // ERRO AQUI!!!
				f.receberVisitante(new Visitante<Estado>() {

					@Override
					public void visitar(Estado e) {
						ftemp.adicionarFecho(m.get(e));
					}
					
				});
				f.adicionarFecho(ftemp);
			}
		}

....

private class FechoEpslon extends EstadoComposto {
		
		private final long serialVersionUID = -2977175480953755946L;

		private FechoEpslon(Estado e) {
			super();
			_e.add(e);
		}
		
		public FechoEpslon() {
			super();
		}

		public void adicionarFecho(FechoEpslon fechoEpslon) {
			_e.addAll(fechoEpslon._e);
		}
	}

}

O que eu posso fazer para solucionar esse problema?
Grato!

private class FechoEpslon extends EstadoComposto {}

Criou uma classe Privada? Tem certeza disso?

[quote=jhooon]Olá. Eu não consigo compilar meu projeto pois o netbeans fica acusando o seguinte erro:

“non-static variable this cannot be referenced from a static context”

Segue o código aonde aponta o erro

				final FechoEpslon f = m.get(e);
				final  FechoEpslon ftemp = new FechoEpslon(); // ERRO AQUI!!!

private class FechoEpslon extends EstadoComposto {
		
		private final long serialVersionUID = -2977175480953755946L;

}

O que eu posso fazer para solucionar esse problema?
Grato![/quote]

Realmente jhooon, você está tentando usar uma classe que está como private, ninguém tem acesso a essa classe.
E outra na hora de instanciar você utiliza final ?
Não entendi o porque do final.

não precisa deste final

final FechoEpslon ftemp = new FechoEpslon();

private class FechoEpslon extends EstadoComposto

Com a classe marcada com private, você jamais conseguirá utilizar o construtor dessa classe como está tentando fazer:

final  FechoEpslon ftemp = new FechoEpslon();

Mas o erro “non-static variable this cannot be referenced from a static context” não é por isso, provavelmente em algum local do seu código, você está tentando acessar uma variável não estática através de um método estático e isso não é possível. Métodos estáticos só acessam variáveis estáticas.

[quote=RodrigoM91]Realmente jhooon, você está tentando usar uma classe que está como private, ninguém tem acesso a essa classe.
E outra na hora de instanciar você utiliza final ?
Não entendi o porque do final.[/quote]
Se a classe privada for inner class, a classe que a possui tem acesso a ela.

[code]class Test {
private class InnerTest { //Pode ser vista por Test
public String toString() {
return “I am a private inner class”;
}
}

public void testMe1() {
	InnerTest test = new InnerTest(); //Veja!!!
}

}[/code]

O erro indica que você está tentando usar algo no contexto errado. Ou seja, algo que deve estar em contexto de objeto dentro de um bloco de contexto de classe (estático):
Mudando um pouco a classe acima:

[code]class Test {
private class InnerTest {
public String toString() {
return “I am a private inner class”;
}
}

public static void testeMe2() {
	InnerTest test = new Test.InnerTest(); //Erro aqui.
}

public void testMe1() {
	InnerTest test = new InnerTest();
}

}[/code]
Neste caso a solução é colocar static na classe:

class Test { private static class InnerTest { ....

Veja se seu problema não é esse.