public Destination destination(final String dest, final float price) {
    return new Destination() {
        private int cost;
        {
            cost = Math.round(price);
            if (cost > 100)
                System.out.prinltn("Over budget!");
        }
        private String label = dest;
        public String readLabel() { return label; }
    };
}
Parameters used by the contained anonymous inner class are modified by "final". But why?
 
     
    