“匿名内部类”的使用场合举例
Posted 清风追梦enjoy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“匿名内部类”的使用场合举例相关的知识,希望对你有一定的参考价值。
package com.sxt.set6; import java.util.Comparator; import java.util.HashSet; /* * TreeSet 有序的 二叉树(红黑数) */ import java.util.Set; import java.util.TreeSet; /* * 匿名内部类 * 使用场合:只需要创建一次对象,就不在使用了,没有必要提供专门的实现类(不使用外部比较器) * */ public class TestStudent { public static void main(String[] args) { //匿名内部类:不是新建了接口而是新建了一个实现类 (穿入比较规则) Set<Student> arr1 = new TreeSet<>(new Comparator<Student>() { @Override public int compare(Student stu1, Student stu2) { if(stu1.getName().equals(stu2.getName())){ return stu2.getAge() - stu1.getAge(); } return stu1.getName().compareTo(stu2.getName()); } }); arr1.add(new Student("bbb", 21, 532.2)); arr1.add(new Student("ccc", 32, 32.2)); arr1.add(new Student("aaa", 11, 352.2)); arr1.add(new Student("aaa", 15, 32.2)); System.out.println("匿名内部类按名字排序(如果名字相同则按年龄降序排序):"); for(Student s:arr1){ System.out.println(s); }
//按照外部比较器按名字排序(如果名字相同则按年龄降序排序):
//Student [name=aaa, age=15, salary=32.2]
//Student [name=aaa, age=11, salary=352.2]
//Student [name=bbb, age=21, salary=532.2]
//Student [name=ccc, age=32, salary=32.2]
}
}
以上是关于“匿名内部类”的使用场合举例的主要内容,如果未能解决你的问题,请参考以下文章