JAVA 中class.getName()和class.getSimpleName()的区别

根据API中的定义:

Class.getName():以String的形式,返回Class对象的“实体”名称;

Class.getSimpleName():获取源代码中给出的“底层类”简称。

观察一个实例

public class Main {
    public static final String SIMPLE_NAME = Main.class.getSimpleName();
    public static final String NAME = Main.class.getName();

    public static void main(String args[]){
        System.out.print("getSimpleName: " + SIMPLE_NAME + "; getName: " + NAME);
    }
}

输出

getSimpleName: Main; getName: com.ducky.cachepicasso.MainClass

可见
Class.getName():以String的形式,返回Class对象的“实体”名称;

Class.getSimpleName():获取源代码中给出的“底层类”简称。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在代码,headClazz获取到的是传入的参数,因此需要确保传入的参数是正确的。如果headClazz获取到的是空值,很可能是传入的参数为空或者不正确。 为了让headClazz能够动态获取到entity包的user、admin表的字段名,可以使用Java反射机制来实现。代码如下: ``` public class CommonReadListener<T> extends AnalysisEventListener<T> implements ReadListener<T> { private Class<T> headClazz; public CommonReadListener(Class<T> headClazz) { this.headClazz = headClazz; } @Override public void invokeHead(Map<Integer, ReadCellData<?>> headMap, AnalysisContext context) { ExcelPropertyCheck clazzHeadAnno = this.headClazz.getAnnotation(ExcelPropertyCheck.class); Field[] declaredFields = headClazz.getDeclaredFields(); if (clazzHeadAnno != null && clazzHeadAnno.required()) { for (Field declaredField : declaredFields) { nullAbleFieldMap.put(declaredField.getName(), true); } } for (Field declaredField : declaredFields) { ExcelPropertyCheck annotation = declaredField.getAnnotation(ExcelPropertyCheck.class); if (annotation != null) { if (annotation.checkFormat()) { checkFormatFieldMap.put(declaredField.getName(), annotation.type() + ""); } if (annotation.required()) { nullAbleFieldMap.put(declaredField.getName(), true); } else { nullAbleFieldMap.remove(declaredField.getName()); } if (annotation.required() && annotation.length() != -1) { checkLengthFieldMap.put(declaredField.getName(), annotation.length()); } } } // 获取entity包的user、admin表的字段名 try { Class<?> entityClass = Class.forName("entity." + headClazz.getSimpleName()); Field[] entityFields = entityClass.getDeclaredFields(); for (Field entityField : entityFields) { String fieldName = entityField.getName(); // 添加到nullAbleFieldMap nullAbleFieldMap.put(fieldName, true); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } } ``` 在代码,我们通过反射获取到了entity包的user、admin表的字段名,并将其添加到nullAbleFieldMap。这样就可以实现动态获取表的字段名了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值