使用Object接收参数,如何判断参数类型


public void getClass(Object mobileOrAccount){

        System.out.println(mobileOrAccount.getClass().getName());
        System.out.println(mobileOrAccount instanceof Integer);

前端传递过来的参数使用Object接收如何判断参数类型

使用postman发送请求

img

img
为什么会变成String不是Integer

你不知道传过来的参数类型 与结构? 只能用instanceof验证了


Object param = params.get(i);
   if (param instanceof Integer) {
    int value = ((Integer) param).intValue();
    prepStatement.setInt(i + 1, value);
   } else if (param instanceof String) {
    String s = (String) param;
    prepStatement.setString(i + 1, s);
   } else if (param instanceof Double) {
    double d = ((Double) param).doubleValue();
    prepStatement.setDouble(i + 1, d);
   } else if (param instanceof Float) {
    float f = ((Float) param).floatValue();
    prepStatement.setFloat(i + 1, f);
   } else if (param instanceof Long) {
    long l = ((Long) param).longValue();
    prepStatement.setLong(i + 1, l);
   } else if (param instanceof Boolean) {
    boolean b = ((Boolean) param).booleanValue();
    prepStatement.setBoolean(i + 1, b);
   } else if (param instanceof Date) {
    Date d = (Date) param;
    prepStatement.setDate(i + 1, (Date) param);
   }

你这个情况,我建议你换一种思路,一般我们接受参数,用对象接收最好了,比如DTO对象,这种的话既清楚类型,还方便阅读,何乐不为??这也是标准的前后端分离开发模式,Object个人不建议使用,因为哪怕你这次记得了,下次呢?别人接手呢??这个对代码的编写也带来了更大的风险。