public static boolean isBlank(String str) {
        return null == str || "".equals(str.trim());
    }
@Test
    public void testIsBlank() {
        Assert.assertTrue(StringKit.isBlank(""));
        Assert.assertTrue(StringKit.isBlank(null));

        Assert.assertFalse(StringKit.isBlank("a"));
        Assert.assertFalse(StringKit.isBlank("null"));

        Assert.assertTrue(StringKit.isNotBlank("a b"));
        Assert.assertTrue(StringKit.isNotBlank("a"));

        Assert.assertFalse(StringKit.isNotBlank(""));
        Assert.assertFalse(StringKit.isNotBlank());


        Assert.assertFalse(StringKit.isNotBlank("a", "b", "  "));
        Assert.assertFalse(StringKit.isNotBlank("a", "b", null));

        Assert.assertTrue(StringKit.isNotBlank("a", "b", "c"));
        Assert.assertTrue(StringKit.isNotBlank("abc", "d ef", "gh i"));

        Bar bar =  new Bar();
        StringKit.isNotBlankThen("barName", bar::setName);
        Assert.assertEquals("barName", bar.getName());

        StringKit.notBankAccept("1", Integer::parseInt, bar::setAge);
        Assert.assertEquals(1, bar.getAge());

        StringKit.notBankThen("bar", bar::doSameThing);

        bar.setName("bar");
        Foo foo = new Foo();
        String name = StringKit.noNullElseGet(foo::getName, bar::getName);
        Assert.assertEquals("bar", name);

        foo.setName("foo");
        String fooName = StringKit.noNullElseGet(foo::getName, bar::getName);
        Assert.assertEquals("foo", fooName);
    }