public static <T> T requireNonNull(T obj, String msg) {
        if (obj == null) {
            throw new PowerJobException(msg);
        }
        if (obj instanceof String) {
            if (StringUtils.isEmpty((String) obj)) {
                throw new PowerJobException(msg);
            }
        }
        if (obj instanceof Collection) {
            if (CollectionUtils.isEmpty((Collection<?>) obj)) {
                throw new PowerJobException(msg);
            }
        }
        if (obj instanceof Map) {
            if (MapUtils.isEmpty((Map<?, ?>) obj)) {
                throw new PowerJobException(msg);
            }
        }
        return obj;
    }
@Test
    void testRequireNonNull() {

        assertThrowsExactly(PowerJobException.class, () -> CommonUtils.requireNonNull(null, "NULL_OBJ"));
        assertThrowsExactly(PowerJobException.class, () -> CommonUtils.requireNonNull("", "EMPTY_STR"));
        assertThrowsExactly(PowerJobException.class, () -> CommonUtils.requireNonNull(Lists.newArrayList(), "EMPTY_COLLECTION"));
        assertThrowsExactly(PowerJobException.class, () -> CommonUtils.requireNonNull(Collections.emptyMap(), "EMPTY_MAP"));

        Map<String, Object> map = Maps.newHashMap();
        map.put("1", 1);

        CommonUtils.requireNonNull(1, "NORMAL");
        CommonUtils.requireNonNull("1", "NORMAL");
        CommonUtils.requireNonNull(Lists.newArrayList("1"), "NORMAL");
        CommonUtils.requireNonNull(map, "NORMAL");

    }