zoukankan      html  css  js  c++  java
  • Java如何实现类似Python的装饰器效果

    Java如何实现类似Python的装饰器效果?

    我发现用Java实现的装饰器模式非常复杂,类似的还有AOP概念,但Python的装饰器其实就是一个对函数做修饰的函数,其接收被修饰的函数作为参数,这是它的主要特征。

    Java可采用模板模式,把Runnable或其他接口的函数作为参数模板函数的参数:

    // 模板
    private void taggingTemplate(String table,String label,Runnable action){
        log.info("{} -- Start tagging {}",table,label);
        action.run(); // 具体的打标签逻辑
        log.info("{} -- End tagging {}",table,label);
    }
    
    public void taggingMethod(){
    //匿名函数作为Runnable对象,当作参数传给taggingTemplate方法 taggingTemplate(
    "table_a","label_A",()->{ // 具体的打标签逻辑放在这里 System.out.println("do something here"); }); }

    参考:https://segmentfault.com/q/1010000014642781

  • 相关阅读:
    SRM482
    SRM481
    SRM480
    SRM479
    SRM478
    vue-cli 3 is not a modual err
    .vimrc
    css3 导入字体
    class []的用法
    RK61 Keyboard Use
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/14890976.html
Copyright © 2011-2022 走看看