zoukankan      html  css  js  c++  java
  • java new一个接口到底要做什么

    转自:http://www.cnblogs.com/yjmyzz/p/3448330.html

    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.classProgram

    1:

    复制代码
     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 }
    复制代码

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

  • 相关阅读:
    lucene初探
    直接插入排序算法(java)
    快速排序优化算法
    大根堆
    学习资料地址
    Lucene:基于Java的全文检索引擎简介
    开关按钮
    微信小程序—如何获取用户输入文本框的值
    微信小程序—获取用户网络状态和设备的信息
    Bootstrap 导航栏
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/5601077.html
Copyright © 2011-2022 走看看