一、介绍
- 概念: 适合创建那种只需要使用一次的类。
- 格式:
new 父类构造器(实参列表)|实现接口(){ //匿名内部类的类体部分 }
- 要点: (1)匿名内部类必须继承一个父类,或实现一个接口;(2)最多自能实现一个父类或者实现一个接口。
- 规则: (1)不能是抽象的类;(2)不能定义构造方法。
由于匿名内部类没有类名,所以无法定义构造器,但匿名内部类可以有初始化块(代码块),可以通过初始化块来完成构造器需要完成的工作。
二、使用
public class PersonModel1 {
private int age;
private String name;
private String id;
public PersonModel1(int age) {
super();
this.age = age;
}
@Override
public String toString() {
return "[年龄:" + age + "]";
}
public int getAge() {
return age;
}
}
public static void main(String[] args) {
List<PersonModel1> list = Arrays.asList(new PersonModel1(11), new PersonModel1(28), new PersonModel1(15));
Collections.sort(list, new Comparator<PersonModel1>() {
public int compare(PersonModel1 p1, PersonModel1 p2) {
return p1.getAge() - p2.getAge();//升序
}
});
System.out.println(list);
}
输出:
[[年龄:11], [年龄:15], [年龄:28]]
在Collections调用sort方法时,传入的比较器的对象就是通过匿名内部类的方法实现的。