`
racingbird
  • 浏览: 23703 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

类的简化历[从内部类到匿名内部类]

 
阅读更多

Version1:

public class DirList
{
	public static void main(String[] args){
		File path = new File(".");
		String[] list;
	
		if(args.length == 0)
			list = path.list();
		else
			list = path.list(new DirFileter(args[0]));
		
		Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
		for(String dirItem : list)
			System.out.println(dirItem);
	}
}

class DirFilter implements FilenameFlter
{
	private Pattern pattern;
	public DirFilter(String regex){
		pattern = Pattern.compile(regex);
	}
	public boolean accept(File dir, String name){
		return pattern.matcher(name).matches();
	}
}

 

version2:

public class DirList2 {
	
	public static FilenameFilter filter(final String regex){
		return new FilenameFilter(){
			private Pattern pattern = Pattern.compile(regex);
			public boolean accept(File dir, String name){
				return pattern.matcher(name).matches();
			}
		};
	}
	public static void main(String[] args) {
		File path = new File(".");
		String[] list;
		if(args.length == 0)
			list = path.list();
		else
			list = path.list(filter(args[0]));
		Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
		for(String dirItem : list)
			System.out.println(dirItem);
	}
}

 

version3:

public class DirList3 {
	public static void main(final String[] args) {
		File path = new File(".");
		String[] list;
		if(args.length == 0)
			list = path.list();
		else
			list = path.list(new FilenameFilter(){
				private Pattern pattern = Pattern.compile(args[0]);
				public boolean accept(File dir, String name) {
					return pattern.matcher(name).matches();
				}
			});
		Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
		for(String dirItem : list)
			System.out.println(dirItem);
	}
}
 
分享到:
评论

相关推荐

    java 内部类使用(内部匿名类)

    - **匿名类简化**:对于只用一次的类,匿名内部类提供了简洁的写法。 在实际开发中,Java内部类的应用广泛,比如在Swing组件事件处理、线程编程(Thread或Runnable实现)、设计模式(如策略模式、装饰器模式)等...

    Java4Android 35_内部类和匿名内部类

    4. **匿名内部类**: 没有名字的内部类,通常用在只需要一次使用的场合,简化代码。 **匿名内部类** 匿名内部类是一种没有名字的内部类,它常用于实现接口或者继承一个类,并且只需要一次使用的情况。其基本语法...

    java中的匿名内部类总结

    匿名内部类是一种简洁的编程方式,能够简化代码编写,但它也有一些限制和特点。 匿名内部类的定义 匿名内部类是指没有名字的内部类,它是继承一个父类或实现一个接口的子类。匿名内部类只能使用一次,因为它没有...

    内部类知识总结3--匿名内部类

    总之,匿名内部类是Java中一个强大的工具,它简化了代码结构,提高了代码的可读性和可维护性。然而,正确理解和使用它,需要充分理解其特性和限制,避免可能的陷阱。通过不断实践和学习,我们可以更好地掌握这一技术...

    Java 匿名内部类

    在Java编程中,匿名内部类主要用于事件处理、回调机制、简化代码以及实现特定功能的短暂对象。 1. **接口实现**: Java匿名内部类可以用来直接实现一个接口,无需为这个接口创建单独的实现类。这在处理事件监听时...

    Android开发匿名内部类

    在Java编程语言中,匿名内部类是一种特殊的类,它没有名字,通常用于简化代码和实现特定功能,如事件处理或接口快速实现。在Android开发中,匿名内部类的应用尤其广泛,因为Android框架中的许多组件(如按钮、文本...

    Android 匿名内部类作为事件监听类

    在Android开发中,匿名内部类作为事件监听类是常见且实用的技术手段,它简化了事件处理的代码编写,提高了开发效率。然而,需要注意的是,随着业务复杂性的增加,适时地采用单独的类来处理事件监听可能更有利于代码...

    匿名内部类代码

    匿名内部类是Java编程语言中一个独特且强大的特性,它允许我们在需要的地方直接定义一个类的实例,而无需声明一个独立的类。这种类没有名字,通常用于实现接口或者继承抽象类,尤其在事件处理、回调函数以及创建一次...

    匿名内部类核心重点知识讲解和经典例子讲解

    - **简洁的代码**:在只需要一次使用的复杂逻辑或回调函数时,使用匿名内部类可以简化代码。 6. **经典例子** - **匿名内部类作为参数**: ```java interface MyInterface { void myMethod(); } public ...

    发两个匿名内部类使用的例子

    在Java编程语言中,匿名内部类是一种特殊的类,它没有名字,通常用于简化代码和实现特定功能。在标题“发两个匿名内部类使用的例子”中,我们将会探讨两种不同的场景,如何利用匿名内部类来解决问题。这篇博客文章的...

    匿名内部类实现接口回调

    这个"匿名内部类实现接口回调"的示例旨在演示如何通过匿名内部类来简化回调函数的实现。下面我们将详细探讨接口回调的概念、匿名内部类的使用以及它们在实际编程中的应用。 首先,让我们理解什么是接口回调。接口回...

    内部类的相关知识-静态内部类,匿名内部类……

    匿名内部类是没有名称的局部内部类,主要用于简化代码编写。通常用于实现接口或者继承父类,而不需要定义一个新的类。匿名内部类可以在定义时直接初始化,省略了类的定义部分。 示例代码如下: ```java public ...

    内部类和匿名类大汇总

    内部类可以封装复杂逻辑,提供更好的数据隐藏,而匿名内部类则简化了实现接口或继承类的流程,特别是在需要一次性实现简单功能时。在实际编程中,灵活运用这两种类可以提高代码的可读性和可维护性,降低开发成本。

    匿名内部类解读代码

    在"FactoryTest2"和"FactoryTest"这两个文件中,我们可能看到了如何使用匿名内部类来简化或定制工厂模式的实现。 例如,如果"FactoryTest"展示了传统的工厂方法,创建了一系列产品对象,那么"FactoryTest2"可能会...

    匿名内部类作为事件监听器

    解压后,可以查看其中的Java文件来学习如何将匿名内部类应用到实际项目中。这些文件通常会有一个主Activity类,里面包含按钮定义和事件监听器的设置,以及可能的布局XML文件,定义了按钮和其他视图的结构。 总结来...

    MapReduce,泛型,匿名内部类,Runnable和Callable

    总结来说,MapReduce是大数据处理的关键技术,泛型提供了强大的类型安全和代码复用,匿名内部类简化了多线程编程,而`Runnable`和`Callable`则是Java多线程编程的基础。了解和掌握这些概念对于理解现代分布式系统和...

    Java特别篇-匿名对象与匿名内部类

    ### Java特别篇-匿名对象与匿名内部类 #### 一、匿名对象 在Java中,对象通常通过定义一个变量来引用。例如,在`Student`类的例子中,我们首先定义了一个`Student`类,并且在`Test`类的`main`方法中通过以下方式...

    关于匿名内部类的资料

    总结来说,匿名内部类是一种强大的工具,它可以简化代码并提高可读性,尤其适用于实现简单的功能或快速响应接口。然而,过度使用匿名内部类可能导致代码难以理解和维护,因此应当适度使用,遵循上述原则和最佳实践。

    JAVA_匿名内部类

    - 简化代码:当只需要一次性的简短实现时,使用匿名内部类可以使代码更简洁。 7. **内存管理** 匿名内部类会隐式地持有对外部类的引用,可能导致内存泄漏,因此需要注意适时释放。 通过理解和掌握匿名内部类,...

Global site tag (gtag.js) - Google Analytics