美文网首页
方法作为传入参数

方法作为传入参数

作者: yehongyu_2018 | 来源:发表于2019-01-15 18:42 被阅读0次

定义方法的抽象类

public abstract class Operation {
    void execute(long result, String data) {};
    void execute(long result, List<String> datas) {
        for (String data: datas) {
            execute(result, data);
        }
    }
}

定义不同的Operation实例对象,有不同的execute函数实现

public class Service {
    
    private static final Operation ADD_OPERATION = new Operation() {
        @Override
        public void execute(long result, String data) {
                // TODO
            }
    };

    private static final Operation SUB_OPERATION = new Operation() {
        @Override
        public void execute(long result, String data) {
            // TODO
        }
    };

    private static final Operation ALL_OPERATION = new Operation() {
        @Override
        public void execute(long result, String data) {
                // TODO
          }
      };

定义使用Operation类对象的地方

public boolean order(String key, String data, Operation operation) throws Exception {
            long result = rpush(key, data);
            operation.execute(result, data);
            return result != 0;
    }
public boolean orderAll(String key, List<String> datas, Operation operation) throws Exception {
            long result = rpush(key, datas);
            operation.execute(result, datas);
            return result != 0;
    }

传入对象,这个对象有重写接口函数,调用接口函数时可以执行不同的方法

order(key1, data1, ADD_OPERATION);
order(key2, data2, SUB_OPERATION);
orderAll(key3, dataList, ALL_OPERATION);

相关文章

网友评论

      本文标题:方法作为传入参数

      本文链接:https://www.haomeiwen.com/subject/dzoydqtx.html