美文网首页JAVA
Java 传参方式

Java 传参方式

作者: 看不见的BUG | 来源:发表于2019-11-11 22:54 被阅读0次

要说的不是Java传值还是传引的问题,而是在程序中,一个方法获取到上层调用传参的方式有哪些,使用场景都是怎么样的问题。

参数列表

这个应该是最常用的传参方式,显式的将参数类型、个数写在方法的参数列表中,每个方法有什么参数都能明显的知道,IDE也可以方便的分析出调用方法、参数调用的代码块。参数列表最具争议的应该是该把所有的参数罗列出来,还是为了减少个数而封装一个参数DTO。就个人而言,一般业务类型的方法如果参数较多的话,我会封装一个DTO并做好注释,而如果是一些工具、通用类的方法,则会罗列出所有的参数方便他人使用。

ThreadLocal

这个在面试中高频出现的考点,而在平时开发中如果能合理使用,也能让代码写得更优雅,模式更灵活。ThreadLocal可以在同一个线程中共享对象并保证线程隔离,所以也可以当成传参的一种方式,需要注意的是这是一种隐式的传参,能让代码看起来更优雅,也能让代码更晦涩,通常在一些和链路相关的地方使用。例如需要在线程中埋一些分析统计的工具,例如调用次数、时间等,就可以寄存一些数据在ThreadLocal中。通常会用在一些和业务不相关的地方(非绝对,例如将Session放在ThreadLocal也是可以的)。使用ThreadLocal的时候通常会出现子线程访问父线程的情形,如果是线程池的场景,可以参考博客ThreadLocal父子线程传递实现方案

DB

DB传值可能就是一种宏观意义上的传值了,平时用的也很多,通过一些参数在DB(SQL、NoSQL、Cache)里获取到相应的值,也就方法能获取到的数据更多了。DB传值需要注意的就是在分布式的场景下,如果DB对象结构发生了改变,那么首次热更新服务器的时候需要做好新、老对象的兼容,否则未更新的服务器可能会接收到新的对象,抛出对象转换异常,反之亦然。

相关文章

  • Java传参方式

    对于基本数据类型(int, char etc.),传递的是基本数据类型的值的拷贝对于对象引用,传递的是对象对象在堆...

  • Java 传参方式

    要说的不是Java传值还是传引的问题,而是在程序中,一个方法获取到上层调用传参的方式有哪些,使用场景都是怎么样的问...

  • Mybatis mapper文件中传递多个参数的4种方式

    方法1:顺序传参法 方法2:@Param注解传参法 方法3:Map传参法 方法4:Java Bean传参法

  • vue路由间的传参params和query

    query方式传参及接收 示例一 query方式的传参,url看下图: params方式传参及接收 示例一 par...

  • 一张图解决java传值传引用问题

    分析此类问题只需要知道两点:java有两种传参方式,基本类型用传值,包装类型用传引用无论是传值还是传引用,形参都是...

  • 一张图解决java传值传引用问题

    分析此类问题只需要知道两点:java有两种传参方式,基本类型用传值,包装类型用传引用无论是传值还是传引用,形参都是...

  • Shader传参

    java->shader传参

  • vue路由传参.md

    两种传参方法 1.命名路由传参(name, params方式) 2.路由路径传参(path, query方式...

  • vue - 路由带参跳转

    vue路由传参按照传参方式可划分为params传参和query传参; params传参分为在url中显示和影藏参数...

  • vue-router query和params传参(接收参数),

    1.query方式传参和接收参数 2.params方式传参和接收参数 注意:params传参,push里面只能是 ...

网友评论

    本文标题:Java 传参方式

    本文链接:https://www.haomeiwen.com/subject/bkjobctx.html