From cbf16443dd7a033074183a4da51a0d9a1ecf4245 Mon Sep 17 00:00:00 2001 From: "Mr.Po" <504919167@qq.com> Date: Tue, 16 Mar 2021 10:56:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/lang/loader/LazyFunLoaderTest.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 hutool-core/src/test/java/cn/hutool/core/lang/loader/LazyFunLoaderTest.java diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/loader/LazyFunLoaderTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/loader/LazyFunLoaderTest.java new file mode 100644 index 000000000..5155af838 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/lang/loader/LazyFunLoaderTest.java @@ -0,0 +1,42 @@ +package cn.hutool.core.lang.loader; + +import org.junit.Assert; +import org.junit.Test; + +public class LazyFunLoaderTest { + + static class BigObject { + + private boolean isDestroy = false; + + public void destroy() { + this.isDestroy = true; + } + } + + @Test + public void test1() { + + LazyFunLoader loader = new LazyFunLoader<>(BigObject::new); + + Assert.assertNotNull(loader.get()); + + // 对于某些对象,在程序关闭时,需要进行销毁操作 + loader.ifInitialized(BigObject::destroy); + + Assert.assertTrue(loader.get().isDestroy); + } + + @Test + public void test2() { + + LazyFunLoader loader = new LazyFunLoader<>(BigObject::new); + + // 若从未使用,则可以避免不必要的初始化 + loader.ifInitialized(it -> { + + Assert.fail(); + it.destroy(); + }); + } +}