Google My Maps - API

Одно из основных применений анонимных классов в завершении класса, которое называется guardizer . В Java-мире использование методов finalize следует избегать, пока вы им не понадобятся. Вы должны помнить, что когда вы переопределяете метод finalize для подклассов, вы всегда должны вызывать super.finalize(), потому что метод finalize суперкласса не будет вызываться автоматически, и у вас могут возникнуть проблемы с утечками памяти.

, поэтому, учитывая упомянутый выше факт, вы можете просто использовать анонимные классы, например:

public class HeavyClass{
    private final Object finalizerGuardian = new Object() {
        @Override
        protected void finalize() throws Throwable{
            //Finalize outer HeavyClass object
        }
    };
}

Используя эту технику, вы освободили себя и своих других разработчиков от вызова super.finalize() для каждого подкласса из HeavyClass, который нуждается в методе окончательной доработки.

30
задан xomena 1 July 2018 в 10:16
поделиться