Java为什么要使用内部类
2017-09-11 09:15
218 查看
首先我们看一下什么才是内部类,下面是Spring源码中的一个代码段(他在getIDS()方法中又写了一个IDsHandler的类),
那么为什么要使用内部类呢,使用方法调用不好吗?下面介绍一个使用内部类的几点优势:
①内部类提供进入其外围类的绿色通道,其外围类可以直接通过new的方式声明内部类的对象,调用其中方法;
②一般来说,内部类继承自某个类,外围类也可继承某个类,这样就实现了Java中的多继承;(内部类可以访问外围类的属性和方法)
③private内部类给类的设计者提供了一种途径,通过这种方式可以完全阻止任何依赖于类型的编码,并且完全隐藏了实现的细节;
④匿名内部类可以使得代码更加地灵活,可以很方便的实现回调;
public Object[] getIDs(final String sql, final Class requiredType, final Object[] params) throws EJBException { class IDsHandler extends RowCountCallbackHandler implements PreparedStatementCreator { private List l = new LinkedList(); public PreparedStatement createPreparedStatement(Connection conn) throws SQLException { PreparedStatement ps = conn.prepareStatement(sql); // Don't prepare if no params if (params != null) for (int i = 0; i < params.length; i++) { ps.setObject(i + 1, params[i]); } return ps; } protected void processRow(ResultSet rs, int rowNum) throws SQLException { l.add(columnExtractor.extractColumn(1, requiredType, rs)); } public Object[] getIDs() { return l.toArray(); } public String getSql() { return sql; } } IDsHandler idsh = new IDsHandler(); jdbcTemplate.query(idsh, idsh); return idsh.getIDs(); } // getIDs
那么为什么要使用内部类呢,使用方法调用不好吗?下面介绍一个使用内部类的几点优势:
①内部类提供进入其外围类的绿色通道,其外围类可以直接通过new的方式声明内部类的对象,调用其中方法;
②一般来说,内部类继承自某个类,外围类也可继承某个类,这样就实现了Java中的多继承;(内部类可以访问外围类的属性和方法)
③private内部类给类的设计者提供了一种途径,通过这种方式可以完全阻止任何依赖于类型的编码,并且完全隐藏了实现的细节;
④匿名内部类可以使得代码更加地灵活,可以很方便的实现回调;
相关文章推荐
- Java为什么要使用内部类?
- Java为什么要使用内部类?
- Java为什么要使用内部类
- Java为什么要使用内部类
- Java为什么要使用内部类
- 为什么局部变量必须以final修饰(或者有final实效:java8)才可以在内部类中使用?
- java匿名内部类使用外部变量时,外部变量必须是final,为什么?
- Java为什么要使用内部类
- Java为什么要使用内部类
- Java为什么要使用内部类?
- java匿名内部类使用外部变量时,外部变量必须是final,为什么?
- Java为什么要使用内部类
- 牛客网Java刷题知识点之什么是内部类、为什么要使用内部类、内部类如何使用外部类的属性和方法、成员内部类、局部内部类、静态内部类、匿名内部类
- Java为什么要使用内部类
- Java中为什么要使用内部类
- Java中内部类中使用外面变量为什么final修饰?
- Java为什么要使用内部类
- Java为什么要使用内部类?
- Java为什么要使用内部类
- Java为什么要使用内部类