首页 > 其他分享 >Map<String,?>与Map<String,Object>这两类型作为方法入参的区别

Map<String,?>与Map<String,Object>这两类型作为方法入参的区别

时间:2024-05-28 09:03:15浏览次数:22  
标签:Map String Object 入参 类型 方法

Map<String,?>与Map<String,Object>这两类型作为方法入参的区别
在Java中,Map<String, ?>和Map<String, Object>这两种类型的Map有以下区别:

  • Map<String, ?>:这是一个只读的Map,你不能向其中添加任何元素,因为在添加元素时,你不知道应该写入什么类型的值。
  • Map<String, Object>:这是一个可读写的Map,你可以向其中添加任何类型的元素,只要这个元素是Object类的子类。

这两种类型的Map都可以使用putAll方法来合并两个Map,但如果有相同的key,那么后面的会覆盖前面的。

这种设计主要是为了在编程时提供更多的灵活性,使得你可以根据需要选择适当的Map类型。例如,如果你的方法只需要读取Map中的数据,而不需要修改它,那么使用Map<String, ?>类型的参数可以使得你的代码更安全,因为它阻止了任何可能的写操作。相反,如果你的方法需要修改Map,那么你应该使用Map<String, Object>类型的参数。


原文链接:https://blog.csdn.net/weixin_42060093/article/details/135876240

标签:Map,String,Object,入参,类型,方法
From: https://www.cnblogs.com/isme-zjh/p/18217028

相关文章

  • golang为什么chan大部分是发送结构体,而不是其它比如string
     typetokenstruct{}typeGroupstruct{cancelfunc(error)wgsync.WaitGroupsemchantokenerrOncesync.Onceerrerror}func(g*Group)done(){ifg.sem!=nil{<-g.sem}g.wg.Done()}在Go语言中,通道(......
  • 【.NET深呼吸】线程信号量(Semaphore)
    Semaphore类可以控制某个资源允许访问的线程数,Semaphore有命名式的,也有不命名的;如果不考虑跨进程工作,一般在代码中使用不命名方式即可。信号量有点类似于等待句柄,某个线程如果调用了WaitOne方法,这个线程就会暂停,并且等待有可用的信号量时才会继续执行;某个线程调用Release方法,就......
  • C++ ─── string的模拟实现
            本博客将简单实现来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。    下期我们继续讲解完整版string的模拟实现(将不再会是浅拷贝了)        说明:下述string类没有显式定义其拷贝构造函数与赋值运......
  • Object 和 String
    APIAPI--ApplicationProgrammingInterface应用程序接口1Object常用方法publicstaticvoidmain(String[]args)throwsCloneNotSupportedException{//Object是java中所有类的顶级父类TestDemotestDemo=newTestDemo();//println中......
  • StringBuffer和StringBuilder方法
    StringBuffer:可变长字符串,jdk1.0提供,运行效率满、线程安全。StringBuilder:可变长字符串,jdk5.0提供,运行效率快、线程不安全。(单线程推荐使用)效率:StringBuilder>StringBuffer>String//验证StringBuilder效率高于StringpublicclassString{publicstaticvoidmain(java.lang.......
  • mybatis- [04] mapper文件详解
      Mybatis的Mapper文件(通常是以.xml为扩展名的文件)主要用于定义SQL语句和它们与Java接口方法之间的映射关系。以下是Mapper文件中一些常用的配置元素和属性。 一、mapper文件配置详解(1)namespace:定义Mapper接口对应的唯一命名空间,用于区分不同的Mapper。(常以UserMapper类的......
  • String案例
    substring方法:截取指定位置的字符串publicclassDemo06{publicstaticvoidmain(String[]args){Stringstr="thisisatext";//1.将str中的单词单独提取出来String[]arr=str.split("");for(Strings:arr){System.out.println(s);}//2.将str中的text替......
  • C++字符串string
    包含头文件:#include<string>C++string与C语言char*之间的相互转换str.c_str()std::string()字符串与float/int之间的相互转换字符串转int/float利用std::stoi将字符串转为整型/转为float型:std::stof,即string-to-floatint/float转字符串std::to_string()......
  • JavaScript 中 toString 的奇妙使用
    JavaScript中的toString()方法,我们通常会一些其他类型的变量,转为字符串类型。但这里还有一些其他奇妙的用法。不同的类型调用toString()会得到不同的结果。我们来一一分析下。1.函数类型我们开发者自定义的函数,和JavaScript官方内置的函数,在调用toString时,输出是不一样......
  • 【Spring】SpringMVC中@RequestMapping 详解
    1、简介在SpringMVC中,@RequestMapping是一个非常重要的注解,它用于映射web请求(如HTTP请求)到特定的处理器方法或处理器类。2、基本用法@RequestMapping可以标注在方法或类上。当标注在类上时,它提供了初步的请求映射信息,如请求路径的前缀。当标注在方法上时,它提供了具体的......