LVTI can be used for anonymous classes. Let's take a look at the following example of an anonymous class that uses an explicit type for the weighter variable:
public interface Weighter {
int getWeight(Player player);
}
Weighter weighter = new Weighter() {
@Override
public int getWeight(Player player) {
return ...;
}
};
Player player = ...;
int weight = weighter.getWeight(player);
Now, look at what happens if we use LVTI:
var weighter = new Weighter() {
@Override
public int getWeight(Player player) {
return ...;
}
};