① java 类型转换:java.lang.Long cannot be cast to java.lang.String
Integer属于不可更改类型,而且Long和Integer没有任何继承关系,当然不能这样转换。解决办法:
public Integer getUsersCount() {
String hql = "select count(*) from Users";
List list = super.pageQuery(hql, null, null, null);
Number num = (Number) list.get(0);
return num.intValue();
} 123456
② jsp里面int和long的区别
INT的长度为4字节,LONG的长度为8字节
INT的取值范围为-(2的32次方)至+(2的31次方)
Long的取值范围是
-(2的64次方)至+(2的64次方),大概是最大值21亿左右.
③ java.lang.NumberFormatException: null
应该是你从页面读到的数据没有转化类型,因为你从页面读到的数据默认都是String类型的,如果你本来的类型是int类型你要转换的
④ 如何在JSP中将字符串转换成长整型啊
长整形就要用长整形的包装类,是Long而不是Integer
Long.parseLong(String)返回从字符串中得到的长整形数值
⑤ JAVA中SWITCH为什么不能使用LONG型作参数
交换机在JAVA中不能使用long的根本原因是长时间转换为int将失去精度,导致数据不准确,因此JAVA交换机具有不允许长的逻辑规则。
switch语句中的变量类型可以是:byte,short,int或char。从Java SE 7开始,交换机支持字符串String类型,case标记必须是字符串常量或文字。
(5)jsplong转换int类型扩展阅读
Switch案例在java中有以下规则:
switch语句可以有多个case语句。每个案例后跟一个值和一个要比较的冒号。
case语句中值的数据类型必须与变量的数据类型相同,并且只能是常量或文字常量。
当变量的值等于case语句的值时,case语句后面的语句开始执行,直到break语句出现跳出switch语句。
遇到break语句时,switch语句终止。程序跳转到switch语句后的语句执行。 case语句不必包含break语句。如果没有发生break语句,程序将继续执行下一个case语句,直到发生break语句。
switch语句可以包含一个默认分支,它通常是switch语句的最后一个分支(可以是任何地方,但建议在最后一个)。当case语句没有值且变量的值相等时,执行Default。默认分支不需要break语句。
⑥ 在jsp中运用加减乘除需要导入什么包
看你是怎么写了
要是写
3+2 这样的,当然不用。
要是用BigDecimal这个类,那就需要导
java.math.BigDecimal
方法摘要
BigDecimal abs()
返回 BigDecimal,其值为此 BigDecimal 的绝对值,其标度为 this.scale()。
BigDecimal abs(MathContext mc)
返回其值为此 BigDecimal 绝对值的 BigDecimal(根据上下文设置进行舍入)。
BigDecimal add(BigDecimal augend)
返回一个 BigDecimal,其值为 (this + augend),其标度为 max(this.scale(), augend.scale())。
BigDecimal add(BigDecimal augend, MathContext mc)
返回其值为 (this + augend) 的 BigDecimal(根据上下文设置进行舍入)。
byte byteValueExact()
将此 BigDecimal 转换为 byte,以检查丢失的信息。
int compareTo(BigDecimal val)
将此 BigDecimal 与指定的 BigDecimal 比较。
BigDecimal divide(BigDecimal divisor)
返回一个 BigDecimal,其值为 (this / divisor),其首选标度为 (this.scale() - divisor.scale());如果无法表示准确的商值(因为它有无穷的十进制扩展),则抛出 ArithmeticException。
BigDecimal divide(BigDecimal divisor, int roundingMode)
返回一个 BigDecimal,其值为 (this / divisor),其标度为 this.scale()。
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
返回一个 BigDecimal,其值为 (this / divisor),其标度为指定标度。
BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
返回一个 BigDecimal,其值为 (this / divisor),其标度为指定标度。
BigDecimal divide(BigDecimal divisor, MathContext mc)
返回其值为 (this / divisor) 的 BigDecimal(根据上下文设置进行舍入)。
BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)
返回一个 BigDecimal,其值为 (this / divisor),其标度为 this.scale()。
BigDecimal[] divideAndRemainder(BigDecimal divisor)
返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟对两个操作数计算所得到的 remainder。
BigDecimal[] divideAndRemainder(BigDecimal divisor, MathContext mc)
返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟根据上下文设置对两个操作数进行舍入计算所得到的 remainder 的结果。
BigDecimal divideToIntegralValue(BigDecimal divisor)
返回 BigDecimal,其值为向下舍入所得商值 (this / divisor) 的整数部分。
BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc)
返回 BigDecimal,其值为 (this / divisor) 的整数部分。
double doubleValue()
将此 BigDecimal 转换为 double。
boolean equals(Object x)
比较此 BigDecimal 与指定的 Object 的相等性。
float floatValue()
将此 BigDecimal 转换为 float。
int hashCode()
返回此 BigDecimal 的哈希码。
int intValue()
将此 BigDecimal 转换为 int。
int intValueExact()
将此 BigDecimal 转换为 int,以检查丢失的信息。
long longValue()
将此 BigDecimal 转换为 long。
long longValueExact()
将此 BigDecimal 转换为 long,以检查丢失的信息。
BigDecimal max(BigDecimal val)
返回此 BigDecimal 和 val 的最大值。
BigDecimal min(BigDecimal val)
返回此 BigDecimal 和 val 的最小值。
BigDecimal movePointLeft(int n)
返回一个 BigDecimal,它等效于将该值的小数点向左移动 n 位。
BigDecimal movePointRight(int n)
返回一个 BigDecimal,它等效于将该值的小数点向右移动 n 位。
BigDecimal multiply(BigDecimal multiplicand)
返回一个 BigDecimal,其值为 (this × multiplicand),其标度为 (this.scale() + multiplicand.scale())。
BigDecimal multiply(BigDecimal multiplicand, MathContext mc)
返回其值为 (this × multiplicand) 的 BigDecimal(根据上下文设置进行舍入)。
BigDecimal negate()
返回 BigDecimal,其值为 (-this),其标度为 this.scale()。
BigDecimal negate(MathContext mc)
返回其值为 (-this) 的 BigDecimal(根据上下文设置进行舍入)。
BigDecimal plus()
返回 BigDecimal,其值为 (+this),其标度为 this.scale()。
BigDecimal plus(MathContext mc)
返回其值为 (+this) 的 BigDecimal(根据上下文设置进行舍入)。
BigDecimal pow(int n)
返回其值为 (thisn) 的 BigDecimal,准确计算该幂,使其具有无限精度。
BigDecimal pow(int n, MathContext mc)
返回其值为 (thisn) 的 BigDecimal。
int precision()
返回此 BigDecimal 的精度。
BigDecimal remainder(BigDecimal divisor)
返回其值为 (this % divisor) 的 BigDecimal。
BigDecimal remainder(BigDecimal divisor, MathContext mc)
返回其值为 (this % divisor) 的 BigDecimal(根据上下文设置进行舍入)。
BigDecimal round(MathContext mc)
返回根据 MathContext 设置进行舍入后的 BigDecimal。
int scale()
返回此 BigDecimal 的标度。
BigDecimal scaleByPowerOfTen(int n)
返回其数值等于 (this * 10n) 的 BigDecimal。
BigDecimal setScale(int newScale)
返回一个 BigDecimal,其标度为指定值,其值在数值上等于此 BigDecimal 的值。
BigDecimal setScale(int newScale, int roundingMode)
返回一个 BigDecimal,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。
BigDecimal setScale(int newScale, RoundingMode roundingMode)
返回 BigDecimal,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。
short shortValueExact()
将此 BigDecimal 转换为 short,以检查丢失的信息。
int signum()
返回此 BigDecimal 的正负号函数。
BigDecimal stripTrailingZeros()
返回数值上等于此小数,但从该表示形式移除所有尾部零的 BigDecimal。
BigDecimal subtract(BigDecimal subtrahend)
返回一个 BigDecimal,其值为 (this - subtrahend),其标度为 max(this.scale(), subtrahend.scale())。
BigDecimal subtract(BigDecimal subtrahend, MathContext mc)
返回其值为 (this - subtrahend) 的 BigDecimal(根据上下文设置进行舍入)。
BigInteger toBigInteger()
将此 BigDecimal 转换为 BigInteger。
BigInteger toBigIntegerExact()
将此 BigDecimal 转换为 BigInteger,以检查丢失的信息。
String toEngineeringString()
返回此 BigDecimal 的字符串表示形式,需要指数时,则使用工程计数法。
String toPlainString()
返回不带指数字段的此 BigDecimal 的字符串表示形式。
String toString()
返回此 BigDecimal 的字符串表示形式,如果需要指数,则使用科学记数法。
BigDecimal ulp()
返回此 BigDecimal 的 ulp(最后一位的单位)的大小。
BigInteger unscaledValue()
返回其值为此 BigDecimal 的非标度值 的 BigInteger。
static BigDecimal valueOf(double val)
使用 Double.toString(double) 方法提供的 double 规范的字符串表示形式将 double 转换为 BigDecimal。
static BigDecimal valueOf(long val)
将 long 值转换为具有零标度的 BigDecimal。
static BigDecimal valueOf(long unscaledVal, int scale)
将 long 非标度值和 int 标度转换为 BigDecimal。