软件编程
位置:首页>> 软件编程>> java编程>> java 中使用匿名类直接new接口详解及实例代码

java 中使用匿名类直接new接口详解及实例代码

作者:杨俊明  发布时间:2021-08-13 22:26:12 

标签:java,匿名类,new接口

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

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


package contract;

public interface ISay {
  void sayHello();
}

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


package jimmy;
import contract.ISay;
public class Program {
 public static void main(String[] args) {
   ISay say = new ISay() {    
     public void sayHello() {
       System.out.println("Hello java!");
     }
   };
 }
}

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

还好这只是假象,观察bin目录下的class输出,会发现有一个类似Program1.class的文件,如果反编译观察一下,发现原来是编译器自动生成一个类Program1.class的文件,如果反编译观察一下,发现原来是编译器自动生成一个类Program1:


package jimmy;

import contract.ISay;
import java.io.PrintStream;

class Program$1
implements ISay
{
public void sayHello()
{
 System.out.println("Hello java!");
}
}

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://www.cnblogs.com/yjmyzz/p/3448330.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com