Segui passo a passo o vídeo, mas quando eu tentei usar a variável "socket" dentro da implementação da classe anônima com Runnable(como foi feito pelo professor) meu código não compila("Cannot refer to the non-final local variable socket defined in an enclosing scope"), e me obriga a definir o socket como final para funcionar corretamente.
Eu até acredito que seja correto não funcionar, porque uma classe anônima define um novo contexto, Mas então por que no vídeo funciona? utilizo java 1.7 seria esse o motivo?
public static void main(String[] args) throws Exception {
Socket socket = new Socket("localhost", 12345);
System.out.println("Conexão Estabelecida");
Thread threadEnviaComando = new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("Pode enviar comandos!");
// não consigo usar essa variável socket da forma como é feito no exemplo
PrintStream saida = new PrintStream(
socket.getOutputStream());