`
log_cd
  • 浏览: 1089971 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java 对象转换与匿名内部类

阅读更多
一、对象操作
1.序列化与反序列化

private Blob msg; 
private Serializable serialiableMsg;

public Serializable getSerialiableMsg() throws SQLException { 
InputStream is = getMsg().getBinaryStream(); 
serialiableMsg = (is == null) ? null : (Serializable) SerializationUtils.serialize(is); 
return serialiableMsg; 
} 

public void setSerialiableMsg(Serializable serialiableMsg) { 
this.serialiableMsg = serialiableMsg; 
byte[] b = SerializationUtils.deserialize(serialiableMsg); 
setMsg(b == null ? null : Hibernate.createBlob(b)); 
} 

2.对象转换

ByteArrayOutputStream bs = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(bs); 
os.writeObject(msg);//把对象写到os里。
byte[] b = bs.toByteArray();//通过bs获得转变后的byte数组。
mss.setMsg(b);

ByteArrayInputStream bi = new ByteArrayInputStream(mss.getMsg());    
ObjectInputStream oi;
Serializable msg=null;
oi = new ObjectInputStream(bi);
msg = (Serializable)oi.readObject();


    /*
     * 复制对象obj,类似于值传递,非引用
     */
    private Object cloneObject(Object obj) throws Exception{
		ByteArrayOutputStream  byteOut = new ByteArrayOutputStream();  
		ObjectOutputStream out = new ObjectOutputStream(byteOut);  
		out.writeObject(obj);         
		ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());  
		ObjectInputStream in =new ObjectInputStream(byteIn);        
		return in.readObject();
    }


二、java anonymous inner class
1.interface
public interface Animal {
    void sound();
}

2.实例
//匿名内部类new <类或接口> <类的主体>
public class JAnonymousInnerClass {
   
	//定义一个内部类
	class Cat{
		private String type;
		private String color;
		public void sound(){
        	System.out.println(color + " "+ type + "  is shouting...");
		}
		public void setType(String type){
			this.type = type;
		}
		public void setColor(String color){
			this.color = color;
		}
	}
	
	/**
	 * 定义一个匿名内部类:new class方式
	 * @param _type
	 * @param _color
	 * @return
	 */
	public Cat get(final String _type,final String _color){
		return new Cat(){//new Class
			{//初始化块
				setType(_type);
				setColor(_color);
			}
			public String toString(){
				return _color.concat(" ").concat(_type);
			}
		};
	}
	
	/**
	 * 定义一个匿名内部类:new interface方式
	 * @param _type
	 * @return
	 */
	public Animal get(final String _type){
		return new Animal(){//new Interface
			private String type = _type;
            public void sound(){
            	System.out.println(type + "  is shouting...");
            }
            public String toString(){return type;}
		};//注意分号
	}
	
	public static void main(String[] args){
		JAnonymousInnerClass jaic = new JAnonymousInnerClass();
		jaic.get("panda").sound();
		jaic.get("cat", "black").sound();
		
	}
}

3.实现回调
public interface CallBack {
	void execute();
}

	public void testRunTime(CallBack callBack) {   
        long begin = System.currentTimeMillis(); 
        callBack.execute();
        long end = System.currentTimeMillis();   
        System.out.println("[use time]:" + (end - begin));  
    }   
	
	public void testCallback(){
		testRunTime(new CallBack(){//匿名内部类
			public void execute() {
					try {
						Thread.sleep(20);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				};
		});
	}
分享到:
评论

相关推荐

    JAVA SE 开发手册.CHM

    12、JAVA面向对象之内部类、匿名内部类 13、JAVA集合框架之简介 14、JAVA集合框架之list接口、LinkedList类、ArrayList类、Vector类 15、JAVA集合框架之Set接口、HashSet类、TreeSet类 16、JAVA集合框架之Map...

    JAVA面向对象详细资料

    21 类与类之间的关系 32 22 GC:垃圾回收机制 33 23 Object类 33 23.1 常用方法:boolean equals(Object) 33 23.2 常用方法:String toString() 34 24 继承整理 34 25 面向对象三大特性:多态(核心) 34 25.1 多态...

    (超赞)JAVA精华之--深入JAVA API

    1.2.5 匿名内部类 1.2.6 内部类使用的其它的问题 1.3 文件和流 1.3.1 什么是数据流 1.3.2 InputStream 的方法有: 1.3.3 OutputStream 的方法: 1.3.4 File 类 1.3.5 文件流的建立 1.3.6 缓冲区流 1.3.7 原始型数据流...

    Java开发技术大全(500个源代码).

    anonymousInner.java 匿名内部类 base.java 定义一个基类 BaseColors.java 一个简单的接口 basePoint.java 一个测试用的基类 Colorable.java 一个子接口 ColoredPoint.java 一个测试用子类 common.java 一个...

    Java基础知识点.html

    Date类 自动拆箱和自动装箱 Arrays 类和接口的关系 内部类 成员内部类 局部内部类 匿名内部类 抽象类 接口 多态 封装 类和对象 方法 StringBuilder类 String类 static for循环 final 权限修饰符 跳转控制语句 while...

    Java经典编程源码基础例程300.zip

    实例068 匿名内部类的简单应用 104 实例069 静态内部类的简单应用 105 实例070 实例化Class类的几种方式 107 实例071 查看类的声明 108 实例072 查看类的成员 110 实例073 查看内部类信息 112 实例074 动态设置类的...

    【05-面向对象(下)】

    •匿名内部类适合创建那种只需要一次使用的类,定义匿名内部类的语法格式如下: •new 父类构造器(实例列表) |实现接口) •{ • //匿名内部类的 类体部分 •} •匿名内部类不能是抽象类,匿名内部类不能定义...

    Java开发详解.zip

    020613_【第6章:面向对象(高级)】_匿名内部类笔记.pdf 020701_【第7章:异常的基本概念】_异常的基本概念笔记.pdf 020702_【第7章:异常的基本概念】_异常的其他概念笔记.pdf 020801_【第8章:包及访问控制权限】...

    JAVA SE学习精华集锦

    1.2.5 匿名内部类 49 1.2.6 内部类使用的其它的问题 50 1.3 文件和流 51 1.3.1 什么是数据流 51 1.3.2 InputStream 的方法有: 51 1.3.3 OutputStream 的方法: 51 1.3.4 File 类 51 1.3.5 文件流的建立 52 1.3.6 ...

    java基础案例与开发详解案例源码全

    8.1.4 匿名内部类211 8.2 对象包装器213 8.3 装箱和拆箱216 8.4 本章习题218 第9章 9.1 String类220 9.1.1 字符串常量221 9.1.2 字符串对象操作224 9.1.3 字符串对象修改228 9.1.4 类型转换230 9.2 StringBuffer类的...

    java初学者必看

    10.5 匿名内部类 10.5.1 继承式 10.5.2 接口式 10.5.3 参数式 10.6 静态嵌套类 10.7 内部类的继承 10.8 本章习题 第11章 线程 11.1 线程基础 11.1.1 什么是线程 11.1.2 Thread创建线程 11.1.3 Thread创建...

    疯狂JAVA讲义

    6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 枚举类 217 6.8.1 手动实现枚举类 217 6.8.2 枚举类入门 219 6.8.3 枚举类的属性、方法和构造器 220 6.8.4 实现接口的枚举类 223 6.8.5 包含抽象...

    Java2实用教程.rar

    5 3字符串与基本数据的相互转化 5 4对象的字符串表示 5 5StringTokenizer类 5 6字符串与字符 字节数组 5 7StringBuffer类 5 8正则表达式 习题 第6章时间 日期和数字 6 1Date类 6 2Calendar类 6 3Math类 6 4...

    Javaw基础课程笔记.zip

    Java 视频教程目录: day01、Java 语言发展史_JDK的安装_HelloWorld程序的编写_关键字_标识符_基本数据类型。 day02、Java 数据类型转换_...day11:Java final 关键字_内部类_成员内部类_局部内部类_匿名内部类。

    Java面试题.docx

    9、成员内部类、静态内部类、局部内部类和匿名内部类的理解,以及项目中的应用 10、string 转换成 integer的方式及原理 11-20题: 11、哪些情况下的对象会被垃圾回收机制处理掉? 12、静态代理和动态代理的区别...

    JAVA笔试题集锦(1-30)基础部分

    2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...

    java经典面试题汇总

    2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    第6章 Java的类(Class)和对象(Object) 132 教学视频:59分钟 6.1 驾驶汽车向类(Class)的世界进发 132 6.1.1 汽车带来的问题 132 6.1.1 类的组成 134 6.1.3 使用自定义的Car类 136 6.1.4 类和对象 139 ...

Global site tag (gtag.js) - Google Analytics