- 计数器类
package sky.java.clazz;
public class Count {
// static 修改count , 使其在常量池中仅有一份.
private static long count;
// final修饰变量 , 则其不可修改. 因为count是确定的一个值. 执行完毕后++.
private final long id = count++;
@Override
public String toString() {
return Long.toString(id);
}
}
- 泛型反射类的应用
package sky.java.clazz;
import java.util.ArrayList;
import java.util.List;
public class Adapter<T> {
private Class<T> type;
private Adapter(Class<T> type) {
this.type = type;
}
public void set(int length) throws IllegalAccessException, InstantiationException {
List<T> list = new ArrayList<>();
for (int i = 0; i < length; i++) {
list.add(type.newInstance());
}
System.out.println(list);
}
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
Adapter<Count> adapter = new Adapter<>(Count.class);
adapter.set(10);
}
}
static final 与 final 的区别 . 参考如下链接 , 即可
https://www.cnblogs.com/qducn/p/6140492.html
- 类型转换的几种方式
package sky.java.classcast;
public class CastTest {
/**
* 类型转换方式
* 1. 传统转换 -> 强转
* 2. class转换 , 如下
* 3. instance 关键字
*
*/
public static void main(String[] args) {
Parent p = new Child();
Class<Child> c = Child.class;
Child c1 = c.cast(p);
System.out.println(c1);
}
}