- 准备一个简单的注解
package com.yusian.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotatio[......]
注解、反射、文件IO流的综合应用
Leave a reply
package com.yusian.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotatio[......]
Class.forName(String name)
、类名.class
、实例对象.getClass()
private static void getClassDemo() throws Exception{
Class cls1 = Class.forName("java.lang.Object");
System.out.println(cls1); // class java.lang.Object
Class cls2 = Object.class;
System.out.println(cls2); // class java.lang.Object
Object obj = new Object();
Class cls3 = obj.getClass();
System.out.println(cls3); // class java.lang.Object
System.out.println(cls1 == cls2); // true
System.out.println(cls1 == cls3); // true
}
[……]
单元测试的类名对应被测试的类名+Test,如:Person –> PersonTest;
单元测试的方法名对应test+被测试的方法名,如:method –> testMethod;
单元测试的方法一般无参无返回值;
测试方法中使用断言来检测预期结果;
单元测试的[……]
Supplier
、Consumer
、Predicate
、Function
什么是函数式接口
package com.yusian.function;
import java.util.function.Supplier;
/**
* Supplier是一个函数式接口,返回任意类型数据,是一个容器
* 他是对所有无参并返回一个对象的结构抽象,一切无参并返回对象的方法都可以成为他的实现
* 这使得编程变得更加开放,可以想像是多态在函数式编程方式上的实现
*/
public class SupplierDemo {
public static void main(String[] args) {
// 1、匿名内部类
Supplier<Person> sup1 = new Supplier<Person>() {
@Override
public Person get() {
return new Person();
}
};
Person p1 = sup1.get();
// 2、Lambda表达式
Supplier<Person> sup2 = () -> new Person();
Person p2 = sup2.get();
// 3、方法引用
Supplier<Person> sup3 = Person::new;
Person p3 = sup3.get();
// 4、本地方法模拟
Person p4 = supplier();
// 5、只要满足函数式结构就可以
Supplier<Person> sup5 = SupplierDemo::supplier;
Person p5 = sup5.get();
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
System.out.println(p4);
System.out.println(p5);
}
/**
* 获取一个Person实例对象
* @return Person
*/
public static Person supplier() {
return new Person();
}
}
[……]
package com.yusian.socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class WebServer {
public static void m[......]