美文网首页
在Java 中云里雾里转圈圈 ?范型 构造枚举

在Java 中云里雾里转圈圈 ?范型 构造枚举

作者: 那只媛 | 来源:发表于2018-07-31 17:57 被阅读0次

晕晕的过程

最近从写SQL转战写Java了(姑且这么说,因为不写线上业务,其实还是写的很low的代码)。
上来的难点就是看着同事们的代码云里雾里,对我来说有几个难点:

  • 范型的使用
    同事代码的有基础的公共包,里边用到了大量的范型,具体的抽象层面的思想其实我是可以看得懂的,但是在具体实际的应用时还是有些懵,
    如:一个接口声明成 interface A<T>{},可是为啥子类implements的时候变成了class B implements A<?>{}
    ?这又是啥鬼。。。
  • 枚举的使用
    在之前我对枚举的使用仅限于enum A{INFO1,INFO2}的层面,以为能用它罗列几个值就可以了。当看到
public enum config implements A<?> {
  INFO1(Sring.class),
  INFO2(Integer.class);
  config(String info);
  config(Integer info)
}

这种带多个构造函数的枚举使用,且枚举的成员不只是一个简单的值类型之后,彻底对以前说自己熟练掌握Java的说法感叹虚啊。

  • lambda表达式
    其实本质上是函数式编程,思想不难理解,可是当看到代码里一堆 "->"的Consumer类型表达时,彻底崩了,因为这样写真的不好理解代码呀,不如写个匿名类的形式来的直接。抱怨归抱怨,还是要学的。看了Consumer和几个常见的容器类,从Iterable、Collection、List、Map、ArrayList、Collector一层层看,再根据代码中使用了Stream的例子,看Consumer怎么在类里传递的,算是理解了一点点。
  • Stream的使用
    同事代码中Stream真的是用的各种纯熟,再配上lambda表达式确实溜到飞起,Array、List、Map转换自如,再配上里边的reduce方法,适合做一些从数据的转换操作,举个例子:
public void compute(List<Performance> listPerfs) {
  listPerfs.stream().map(obj -> obj.getPv()).reduce(0L, (a, b) -> a + b);
}
这个代码的功能就是实现listPerfs中对象Pv成员变量的累加操作,确实代码比循环简洁了很多,可是要看懂对于生手真的不容易,只能跑去看reduce函数的介绍 Stream中reduce的注释.png

其中的accumulator参数是个BinaryOperator<T>,在这个例子里就是加法了。

后记

修炼了2年SQL之后,回头来学Java虽然觉得吃力,但是觉得踏实了些,SQL会继续写,Java一起跟进!

相关文章

  • 在Java 中云里雾里转圈圈 ?范型 构造枚举

    晕晕的过程 最近从写SQL转战写Java了(姑且这么说,因为不写线上业务,其实还是写的很low的代码)。上来的难点...

  • 枚举

    定义枚举类 可以在枚举中定义普通方法和抽象方法. 也同样可在枚举类中定义属性,构造方法. 实现原理 Java文件在...

  • 枚举——静态常量

    在java中枚举有个特点,枚举实例的定义要求在枚举类型的第一行, 而且,枚举构造器的调用,会在static块的调用...

  • 枚举

    从JDK 5开始,枚举被添加到Java语言中。在Java中,枚举被定义为类,可以具有构造函数,方法以及实例变量。 ...

  • 学习路线

    Java Se基础 Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱...

  • CoreJava笔记 - 范型程序设计(2)

    范型代码和Java虚拟机 关键知识:类型擦除Java的范型是编译器层次的范型,而在Java虚拟机上并没有范型类。在...

  • CoreJava笔记 - 范型程序设计(5)

    反射与范型 由于类型擦除,反射无法得到关于范型类型参数的信息。 范型的Class类在Java的反射库中,Class...

  • Android面试复习

    一.Java基础 1.Java语法关键字:接口和抽象类,反射,内部类,字符串,范型,枚举,引用类型,注解,NIO,...

  • Java 枚举enum构造方法默认是private

    Java 枚举enum构造方法默认是private

  • iOS使用NSLog输出各数据类型的占位符归纳

    一、OC中数据类型1)基本数据类型:整型、字符型、浮点型(double、float)、枚举型; 2)构造类型:数组...

网友评论

      本文标题:在Java 中云里雾里转圈圈 ?范型 构造枚举

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