public String[] except(String... columnNames) {

        Field[] fields = this.getClass().getFields();
        if (fields == null || fields.length == 0) {
            return null;
        }

        MyArrayList<Field> fieldList = MyArrayList.wrap(fields);

        //如果没有排除项则返回所有常量值
        if (columnNames == null || columnNames.length == 0) {
            return this.getColumnNames(fieldList, new Predicate<Field>() {

                @Override
                public boolean isMatch(Field element) {
                    return (!element.getName().equalsIgnoreCase("EntityName"));
                }
            });
        }

        final List<String> cols = Arrays.asList(columnNames);
        return this.getColumnNames(fieldList, new Predicate<Field>() {

            @Override
            public boolean isMatch(Field element) {
                return !(element.getName().equalsIgnoreCase("EntityName")
                        || cols.contains(element.getName()));
            }
        });
    }