Java在将参数传递给函数时使用按值调用。要交换对象,我们需要使用它们的包装器。请参阅下面的示例-

示例public class Tester{

public static void main(String[] args) {

A a = new A();

A b = new A();

a.value = 1;

b.value = 2;

//使用对象交换

swap(a,b);

System.out.println(a.value +", " + b.value);

Wrapper wA = new Wrapper(a);

Wrapper wB = new Wrapper(b);

//使用对象包装器进行交换

swap(wA,wB);

System.out.println(wA.a.value +", " + wB.a.value);

}

public static void swap(A a, A b){

A temp = a;

a = b;

b = temp;

}

public static void swap(Wrapper wA, Wrapper wB){

A temp = wA.a;

wA.a = wB.a;

wB.a = temp;

}

}

class A {

public int value;

}

class Wrapper {

A a;

Wrapper(A a){ this.a = a;}

}

输出结果1, 2

2, 1

java对象交换_如何在Java中交换或交换对象?相关推荐

  1. kotlin半生对象_如何在Kotlin中使用Actor实现对象池

    kotlin半生对象 by osha1 由osha1 如何在Kotlin中使用Actor实现对象池 (How to implement an Object-Pool with an Actor in ...

  2. java获取语言_如何在java中获取语言环境对象?

    我在框架Spring和Liferay中使用Java. 使用liferay我知道如何获得一个语言环境(对象有一些信息:语言,国家......),但现在我在一个没有与liferay连接的java类,我不知 ...

  3. java 正则表达式 开头_如何在Java中修复表达式的非法开头

    java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...

  4. java soap 头_如何在Java中添加Soap标头

    我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...

  5. java实现递归算法_如何在Java中实现二进制搜索算法而无需递归

    java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...

  6. java tostring格式_如何在Java中使用toString()获得数字的字符串表示形式?

    toString()方法中的一个重要方法对象类,它可用于返回一个对象的字符串或文本表示.对象类的toString()方法返回一个字符串,作为指定对象类的名称,后跟" @ "符号和对 ...

  7. java插入图片_如何在java窗体程序中添加图片

    打开eclipse,创建一个java工程项目,创建完后在src下新建一个类Window,由于要插入图片,所以还在工程目录下创建一个文件夹imgs,里面放了一张60*60的图片,创建后的工程目录和图片, ...

  8. java安卓计时器_如何在android中设置计时器

    通过java.util.Timer和java.util.TimerTask使用计时器的标准Java方法在Android中运行良好,但是你应该知道这个方法创建了一个新线程. 您可以考虑使用非常方便的Ha ...

  9. java jcombobox长度_如何在JToolBar中设定JComboBox的大小?

    如何在JToolBar中设定JComboBox的大小? 我设计了一个JToolBar,并且在上边添加了一个JComboBox,可是我发现这个JComboBox长度无法控制,它将JToolBar上剩余空 ...

  10. java redis 缓存_如何在 Java 中实现一个 redis 缓存服务

    缓存服务的意义 为什么要使用缓存?说到底是为了提高系统的运行速度.将用户频繁访问的内容存放在离用户最近,访问速度最快的地方,提高用户的响应速度.一个 web 应用的简单结构如下图. web 应用典型架 ...

最新文章

  1. Matlab与线性代数 -- 矩阵的加法与减法
  2. leetcode算法题--Minimum Depth of Binary Tree
  3. [一维粒子模拟 version3.6]成功实现初次诊断函数
  4. Notepad++高亮AS文件
  5. 图深度学习-第2部分
  6. c语言输入不定数量字符串并排序,请教多个字符串排序(不用数组)
  7. BZOJ2190 SDOI2008 仪仗队
  8. xmind怎样画流程图_老师是怎样上网课的?
  9. linux adb 安装包下载地址,adb.exe下载|adb.exe 64位32位 官方版-520下载站
  10. Android AMS 与 APP 进程通信
  11. 气动隔膜阀的工作原理
  12. Python-飞机大战(二)
  13. 使用学信网认证,免费获取JetBrains学习产品
  14. 【转】Android兼容性测试的一些坑
  15. python 爬取贝壳网小区名称_用Python爬取贝壳网新房和二手房数据
  16. ACL and SCO
  17. 利用MOG背景分割器实现物体追踪
  18. 想知道香港汇丰银行如何开户吗?
  19. 黑客:iPhone的这些脑残功能逼我去越狱 苹果:乖,招安是我强项!
  20. [野狐行][2016/04/11][群直播系列2][那些年让我们郁闷不已的游戏保护]

热门文章

  1. 【贪玩巴斯】每日一练——《力扣:LeetCode 算法入门》(C++)——「存在重复元素」
  2. Cocos2d-x制作跨平台太空射击游戏
  3. drop与delete的区别
  4. js 数据类型思维导图
  5. matlab 0x000007b,windows应用程序无法正常启动(0x000007b)怎么办_windows应用程序无法正常启动(0x000007b)解决办法_飞翔教程...
  6. 为什么没写Feedsky话题广告
  7. docker部署homeassistant
  8. JUC之集合安全问题
  9. python-多元线性回归模型
  10. PHP工程改成微擎的步骤_微擎系统搭建