股票软件常用函数(股票软件术语)_币圈新闻_鼎鸿网

股票软件常用函数(股票软件术语)

angula 0

面向对象编程是对数据的抽象,而函数式编程是对行为的一种抽象。

(一 ) java里提供的重要函数接口

函数接口 就是用java.lang.FunctionalInterface注解修饰的一个接口类。是一种语义上的定义。

平时工作中不需要自定义。java已经提供了挺多的了。

Predicate<T>:判断类型的函数接口,例如某人年龄是否大于18

Consumer<T>:消费类型的函数接口,例如 我们要输出一个值。

Supplier<T>:提供者。例如工厂方法。

还有其他的Function<T>、BinaryOperator<T>。这里我们使用Supplier<T>

(二)Supplier<T>

Supplier的代码如下。语义就是返回一个结果。

@FunctionalInterfacepublic interface Supplier<T> {    /**     * Gets a result.     *     * @return a result     */    T get();}

(三) 实现复制list对象到另一个list对象

org.springframework.beans.BeanUtils 只有copyProperties(source,target) 对象到对象的复制。接下我们扩展 通过Suppiler 来实现list的复制。

代码如下

//继承 BeanUtilspublic class MyBeanUtils extends BeanUtils {    /**     *通用的方式 所以用了泛型。     * @param sourceList  原list数据     * @param supplier  目标对象 提供者。     * @param <S>  泛型 代指 source的类型     * @param <T>  泛型 代指 target的类型     * @return     */    public static <S,T> List<T> copyPropertiesList(List<S> sourceList, Supplier<T> supplier){        List<T> targetList = new ArrayList<>(sourceList.size());        sourceList.forEach(source->{            //通过supplier获取对象。            T target = supplier.get();            //调用BeanUtils自带的方法 复制。            copyProperties(source,target);            targetList.add(target);        });        return targetList;    }}

测试类

public class Test {    public static void main(String[] args) {        //构造测试数据        List<Source> sourceList = new ArrayList<>();        sourceList.add(new Source("张三",13));        sourceList.add(new Source("李四",14));        //Target::new 就是一种supplier函数,每调用一次suppiler的get方法就新建一个对象。        List<Target> result = MyBeanUtils.copyPropertiesList(sourceList,Target::new);       result.forEach(target ->System.out.println(target.getName()+"::"+target.getAge()));    }    @Data    @AllArgsConstructor    public static class Source{        private String name;        private Integer age;    }    @Data    public static class Target{        private String name;        private Integer age;    }}

运行 结果如下 符合预期

张三::13李四::14


函数式编程是java非常牛的功能。可以说是个装高手的利器,代码简洁明了。

股票软件常用函数(股票软件术语)文档下载: PDF DOC TXT