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ということになるようです。
コメントがあればどうぞ