码迷,mamicode.com
首页 > 编程语言 > 详细

java 直接new接口的用法

时间:2014-12-29 12:24:17      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

java中的匿名类有一个倍儿神奇的用法,见下面代码示例:

1 package contract;
2 
3 public interface ISay {4     void sayHello();5 }

上面是一个简单的接口,下面是如何使用:

技术分享

 1 package jimmy; 
 2 import contract.ISay; 
 3 public class Program { 
 4     public static void main(String[] args) { 
 5         ISay say = new ISay() {          
 6             public void sayHello() { 
 7                 System.out.println("Hello java!"); 
 8             } 
 9         };
 10     }
 11 }

技术分享

初看上去,就好象在“不提供接口实现的情况下,直接new了一个接口实例”,对于C#er来说,有一种尽毁三观的赶脚。

还好这只是假象,观察bin目录下的class输出,会发现有一个类似Program1.classProgram1:

技术分享

 1 package jimmy; 
 2  
 3 import contract.ISay; 
 4 import java.io.PrintStream; 
 5  
 6 class Program$1 
 7   implements ISay 
 8 { 
 9   public void sayHello()
 10   {
 11     System.out.println("Hello java!");
 12   }
 13 }

技术分享

如果有些场合,只需要临时需要创建一个接口的实现类,上面的"技巧"可以用来简化代码.

 

java:使用匿名类直接new接口

java 直接new接口的用法

标签:

原文地址:http://my.oschina.net/cjun/blog/361828

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!