反射获取注解的信息,反射获取类的属性

注解:
public @interface Table {
    java.lang.String name() default "";

    java.lang.String catalog() default "";

    java.lang.String schema() default "";

    javax.persistence.UniqueConstraint[] uniqueConstraints() default {};

    javax.persistence.Index[] indexes() default {};
}


    /**
     * 获取对象对应的表名
     * @Author YangLong
     * @param object 需获取表名对象
     * @return 类对应的表名
     */
    public String getTableName(final T object) {
        Annotation[] annotations = object.getClass().getAnnotations();
        String tableName = "";
        //遍历注解
        for (Annotation annotation : annotations) {
            //如果是Table注解
            if (annotation instanceof Table) {
                //获取注解中name()对应的属性值
                tableName = ((Table) annotation).name();
            }
        }
        return tableName;
    }
获取类:
/**
     * 获取对象的属性名称数组
     * @Author YangLong
     * @param object 需获取属性名称的对象
     * @return 属性名称
     */
    public String[] getTableColumn(final T object) {
        //获取泛型对应的类中的所有属性名称,不包含继承的
        //getFields获取所有公共访问的,包括继承的
        Field[] fields = object.getClass().getDeclaredFields();
        final int length = fields.length;
        String[] columnNames = new String[length];
        for (int i = 0; i < length; i++) {
            columnNames[i] = fields[i].getName();
        }
        return columnNames;
    }

你可能感兴趣的:(反射,反射获取注解,反射获取属性名称)