zoukankan      html  css  js  c++  java
  • ScalarHandler返回的参数

    ScalarHandler用来获得聚合函数的值,返回类型是Object,用Number来接收比较好
    Number num=qr.query(cntSql.append(whereSql).toString(),new ScalarHandler<>(),params.toArray());
    然后调用intValue()方法
    int tr=num.intValue()即可!

    但是,之前我都是用long来接收,进行强转,然后再强转成int
    long num=(long)qr.query(cntSql.append(whereSql).toString(),new ScalarHandler<>(),params.toArray());
    int tr=(int)num;

    虽然不知道为什么可以用long来接收,而不能直接用int来接收,有点小感悟,在不知道返回类型选择的情况下,选择其公共父类来接收,Number为Long Integer等包装类的父类,
    用父类来接收,然后调用子类重写的方法

    同样的,之前遇到一个问题,就是Servlet中四大域获取属性的方法getAttribute(),假设得到的值为value,value是数字类型的字符串,那么只能这样转换成数字类型:
    request.setAttribute(name,"1");//向域中存入一个数字类型的字符串
    String value = (String)request.getAttribute(name);
    int tr = Integer.parseInt(value);
    而不能直接强转
    int value = (int)request.getAttribute(name);//会报错,ClassCastException类型转换异常
    其实现在想想也好理解,jvm是根据类型来转换的,你传入的是个String类型,最后也只能用String来接收,再转化成int类型!
    而且基本数据类型不能和引用数据类型进行强转,除了包装类,类之间的强转也需要有继承关系!
  • 相关阅读:
    远程连接桌面报:这可能是由于credssp加密oracle修正
    MVC断点续传
    [COCI2011-2012#5] POPLOCAVANJE 后缀自动机
    [SDOI2016]生成魔咒 后缀自动机
    [JSOI2009]密码 AC自动机
    CF17E Palisection manacher
    [JSOI2007]字符加密 后缀数组
    [POI2012]OKR-A Horrible Poem hash
    [APIO2014]回文串 manacher 后缀数组
    [SHOI2011]双倍回文 manacher
  • 原文地址:https://www.cnblogs.com/doveshelly/p/8868420.html
Copyright © 2011-2022 走看看