使用反射交换a,b的值
来源:互联网 发布:淘宝ashford 编辑:程序博客网 时间:2024/06/07 08:01
package aa;
import java.lang.reflect.Field;
import org.omg.CORBA.INTERNAL;
public class aa {
public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
Integer a=1,b=2;
System.out.println("交换之前:a"+a+"b"+b);
swap(a,b);
System.out.println("交换之后:a"+a+"b"+b);
}
private static void swap(Integer a, Integer b) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
// TODO Auto-generated method stub
Field field = Integer.class.getDeclaredField("value");
field.setAccessible(true);
Integer tmp = new Integer(a.intValue());
field.set(a, b.intValue());
field.set(b, tmp);
}
import java.lang.reflect.Field;
import org.omg.CORBA.INTERNAL;
public class aa {
public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
Integer a=1,b=2;
System.out.println("交换之前:a"+a+"b"+b);
swap(a,b);
System.out.println("交换之后:a"+a+"b"+b);
}
private static void swap(Integer a, Integer b) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
// TODO Auto-generated method stub
Field field = Integer.class.getDeclaredField("value");
field.setAccessible(true);
Integer tmp = new Integer(a.intValue());
field.set(a, b.intValue());
field.set(b, tmp);
}
}
使用到的知识点
1. 函数调用的值类型和引用类型传递
2. 装箱、拆箱 Integer a = Integer.valueof(1) a.intValue()
3. 反射的可访问性
4. Integer -128 到127 初始化缓存
Boolean:(全部缓存)
· Byte:(全部缓存)
·
· Character(<= 127缓存)
· Short(-128 — 127缓存)
· Long(-128 — 127缓存)
·
· Float(没有缓存)
· Doulbe(没有缓存)
0 0
- 使用反射交换a,b的值
- 交换a,b的值
- 不使用中间变量交换a和b的值
- 不使用中间变量的a,b值交换
- 不使用其他变量交换a,b的值
- 不使用中间变量交换a和b的值
- 交换a、b值
- 交换a,b的值的程序
- 把a 和b的值交换
- 交换a,b两个元素的值
- 如何交换a,b的值。
- 交换a、b的值temp = a; a = b; b = temp;比a = a^b;b = a^b;a = a^b;快
- a与b值交换
- 不使用中间变量,交换int型的 a, b两个变量的值
- 不使用中间变量交换变量a、b的值的延伸
- 不使用中间变量,交换int型的 a, b两个变量的值
- 不使用中间变量,交换int型的 a, b两个变量的值。
- 程序员面试(2):不使用任何的变量实现a,b值的交换
- C#100课的主要内容
- springmvc拦截器
- 【BZOJ】T3875 骑士游戏 (TLE)
- 从“地瓜社区”的建立,浅谈社群用户需求
- hibernate 复合主键 注解
- 使用反射交换a,b的值
- leecode 解题总结:121. Best Time to Buy and Sell Stock
- IndentationError: unindent does not match any outer indentation level
- 如何通过数据分析,提升情人节的产品销量?
- mybatis笔记(三)与spring集成
- 重拾Android
- 2017新媒体运营升职加薪指南:从内容到数据,如何走好新媒体的进阶之路?
- 多线程-线程同步有几种实现方式
- IE内嵌google chrome frame解决浏览器兼容问题