jdk7からjdk8に変えた時、
Runnableのスコープ外で宣言した変数が、
Runnable内でfinalを付けないで参照できた。
java7だと、
int numberLocal = 1; Thread t = new Thread(new Runnable() { final int numberThread = numberLocal; };
java8だと、
int numberLocal = 1; Thread t = new Thread(new Runnable() { int numberThread = numberLocal; };
のような感じで、java8だとfinalが不要らしい。
ただし、書き換えるとエラーになるので、
暗黙的なfinalということになるようです。
コメントがあればどうぞ