首页
学习
活动
专区
圈层
工具
发布

Map接收参数,Long类型降级为Integer,报类型转换异常

前言 今天看群里小伙伴问了一个非常有意思的问题: 使用 Map 对象接收前端传递的参数,在后端取参时,因为接口文档中明确该字段类型为 Long ,所以对接收的参数进行了强转...,即 (Long)参数 ,但是却发生了类型转换异常,报错信息如下: class java.lang.Integer cannot be cast to class java.lang.Long (java.lang.Integer...强转的话会报 java.lang.Long cannot be cast to java.lang.Integer 异常,至此问题就还原出来了。...使用 Map 接收的 Long 数值如果处于 「 Integer.MIN_VALUE ~ Integer.MAX_VALUE 」 是会自动转换成 Integer 的。...不光是接收,同样直接使用 Map 存入数据符合这个范围,仍然也会被认为存入的是 Integer 类型,我们可以把它看做一种潜在的优化,毕竟 Long 类型使用的字节数要大于

4.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java学习之路:16.掌握Integer,Long,Short对象的创建以及其类提供的各种方法

    1.前言 java.lang包中的Integer类,Long类,和Short类分别将int,long,short类型封装成一个类,由于这些类都市Number的子类,区别就是封装的数据类型,其包含的方法基本相同...2.构造方法 Integer类有两种构造方法: Integer(int number) 该方法以一个int类型变量作为参数来获取Integer对象。...Integer number =new Integer(7); Integer(String str) 该方法以一个String类型变量作为参数来获取Integer对象。...Integer number =new Integer("7"); 至于int和Integer类型的区别可查看这里 3.常用方法 方法 返回值 功能描述 byteValue() byte 以byte类型返回该...Integer的值 compareTo(Integer anotherInteger) int 在数字上比较两个Integer对象,如果两个值相等,则返回0;如果调用对象的数值小于anotherInteger

    89810

    动态规划

    以上是动态规划算法的解释,那么如何将应用到实际问题中呢或者说该算法的核心是什么,我们将采用何种思维去使用这个算法,进行破题它的核心就是将问题分解为一系列子问题,并通过记忆化或递推的方式求解子问题,从而得到原始问题的解...} else { return fibonacci(n - 1) + fibonacci(n - 2); } }​}可以看到非常简单,这使用了递归传入...(1)...你传入的n越大,最底下的就会调用更多次,造成了浪费正好,我们只需要将以前计算过的值存储起来,在后面进行取用即可package com.banmoon.arithmetic;​import java.util.HashMap...;import java.util.Map;​public class Fibonacci {​ private static MapInteger, Long> map = new HashMap...(n); } else { long result = fibonacci(n - 1) + fibonacci(n - 2); map.put

    27700

    transformation操作开发实战

    6、sortByKey:将学生分数进行排序 7、join:打印每个学生的成绩 8、cogroup:打印每个学生的成绩 map:将集合中每个元素乘以2 Java版本 ​/** * map算子案例...= sc.parallelize(numbers); ​// 使用map算子,将集合中的每个元素都乘以2 // map算子,是对任何类型的RDD,都可以调用的 // 在java中,map算子接收的参数是...> multipleNumberRDD = numberRDD.map(new FunctionInteger, Integer>() { ​​​private static final long...= sc.parallelize(numbers); ​​// 对初始RDD执行filter算子,过滤出其中的偶数 // filter算子,传入的也是Function,其他的使用注意点,实际上和map...,将值再与第三个value传入1+2 =3 v1 =3 +4 v1 = 7 +v2 ​​​// 因此此处,会自动定义两个泛型类型,代表call()方法的两个传入参数的类型 // 第三个泛型类型,代表了每次

    61120

    java8新特性

    该抽象方法对传入的值进行处理,但没有返回值。Java8支持不用接口直接通过lambda表达式传入参数。 如果Optional实例有值,调用ifPresent()可以接受接口段或lambda表达式。...如果返回值不为null,则创建包含mapping返回值的Optional作为map方法返回值,否则返回空Optional。 map方法用来对Optional实例的值执行一系列操作。...map方法示例如下: // map方法执行传入的lambda表达式参数对Optional实例的值进行修改。 // 为lambda表达式的返回值创建新的Optional实例作为map方法的返回值。...参照map函数,使用flatMap重写的示例如下: // flatMap与map(Function)非常类似,区别在于传入方法的lambda表达式的返回类型。...读到这里,可能你已经知道如何为filter方法传入一段代码。是的,这里可以传入一个lambda表达式。对于filter函数我们应该传入实现了Predicate接口的lambda表达式。

    1.8K10

    【Java 】包装类详解:从基本概念到实战技巧

    (100); int value = i1;//方法1 int value2 = i1.intValue();//方法2 经过上述步骤就可以将包装类转换成基本数据类型了,这两个例子分别展示了如何将int...类型转换成包装类,如何将包装类转换成int类型。...public static long parseLong(String s):将字符串参数转换为对应的long基本类型。...在Integer对象创建过程中: 如果传入value数值在-128~127范围内,那么所有在这个范围内被创建的对象(句柄)实际都指向同一个地址,即被预创建Integer对象所在的地址。...如果传入value数值不在范围内,那么每次被创建的对象(句柄)都指向一个新的且不同的地址,即通过new关键字由JVM分配的新地址。

    45410
    领券