- 浏览: 345806 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (160)
- webservice (2)
- 数据库开发 (9)
- LINUX (6)
- 团队协作 (5)
- 前端技术 (4)
- J2EE (31)
- web服务器 (9)
- 经验常识 (13)
- 开发工具 (17)
- 项目管理 (7)
- 重构与设计模式 (8)
- 安全技术 (1)
- 并发编程 (1)
- 移动互联网 (2)
- 编码风格 (1)
- 领域建模 (1)
- 随想杂记 (12)
- 翻译 (2)
- 问题排查 (2)
- 数据挖掘 (4)
- 软件架构 (1)
- java语言基础知识 (13)
- 文件读写 (1)
- mac研发笔记 (1)
- 网络问题 (1)
- python学习 (0)
- Java8新特性 (1)
- soft kes collections (1)
最新评论
-
cremains:
...
java8新特性学习笔记 -
bingyingao:
guooo 写道很好的总结,不知能否转载?可以,多谢关注
又四年了,再看如何快速融入一个新团队 -
guooo:
很好的总结,不知能否转载?
又四年了,再看如何快速融入一个新团队 -
omeweb:
又过了好几年了,有啥新感悟没有?
两年已过去,再看该如何快速融入新团队 -
kely39:
感谢楼主,问题已解决
包冲突问题的解决方法
java内部类是怎么一回事?匿名内部类何时会用到,之前一直很模糊,昨天看了几个例子,心里开始慢慢清晰了关于匿名内部类的用法。
补充:
以前看到,发布后的工程中,一个java类,生成了几个带标号的.class文件,形如:
CouponAgentListAction.class,CouponAgentListAction$1.class,CouponAgentListAction$2.class.而更新的时候,如果只更新不带标号的.class,可能会出现问题。一直不知道什么原因。今天测试匿名内部类,发现,之所以生成带$的class文件,是因为类中使用了匿名类,使用了几个匿名类,就将生成几个带$的文件,发布工程的时候应该连同带$的文件一齐发布。
示例一:
示例二:
这是我们工程中匿名内部类在分页方法中的运用,动态拼接分页链接地址:
示例三:
上篇博客中用策略模式改善dao层代码中有使用。
示例四:
Thread类的匿名内部类实现。
Runnable接口的匿名内部类实现。
使用匿名内部类的特点:
1.只能使用一次
2.接口或者抽象类都可以被实现为匿名内部类。
使用匿名内部类的好处:
可以省略一个类的书写。
补充:
以前看到,发布后的工程中,一个java类,生成了几个带标号的.class文件,形如:
CouponAgentListAction.class,CouponAgentListAction$1.class,CouponAgentListAction$2.class.而更新的时候,如果只更新不带标号的.class,可能会出现问题。一直不知道什么原因。今天测试匿名内部类,发现,之所以生成带$的class文件,是因为类中使用了匿名类,使用了几个匿名类,就将生成几个带$的文件,发布工程的时候应该连同带$的文件一齐发布。
示例一:
package com; interface Operation { double operateTwoIntNum(int a, int b); } public class InnerClassTest { /** * 加法 */ public static double add(int a, int b) { /** * 匿名内部类实现加法 */ double c = new Operation() { @Override public double operateTwoIntNum(int a, int b) { return a + b; } }.operateTwoIntNum(a, b); return c; } /** * 减法 * @param a * @param b * @return */ public static double subtract(int a, int b) { /** * 匿名内部类实现加法 */ double c = new Operation() { @Override public double operateTwoIntNum(int a, int b) { // TODO Auto-generated method stub return a - b; } }.operateTwoIntNum(a, b); return c; } public static void main(String[] args) { System.out.println(add(10, 3)); System.out.println(subtract(10, 3)); } }
示例二:
这是我们工程中匿名内部类在分页方法中的运用,动态拼接分页链接地址:
public interface LinkBuilder { public StringBuffer getPagerUrl(); //public void setPage(int page); public StringBuffer getPageUrl(int page); } public abstract class AbstractLinkBuilder implements LinkBuilder { @Override public final StringBuffer getPageUrl(int page) { StringBuffer url = new StringBuffer(XssFilterService.dhtmlSpecialchars( this.getPagerUrl(), true)); if (url.toString().indexOf("?") > 0) { url.append("&"); } else { url.append("?"); } url.append("page=").append(page); return url; } } --------------调用分页标签时根据需要拼接链接地址-------------------------------- Pager pager = Pager.register("newPagerWidget",new AbstractLinkBuilder() {@Override public StringBuffer getPagerUrl() { StringBuffer url = null; if (queryAgentStore != null) { url = new StringBuffer("agentstorelist.html?"); if (StringUtils.isNotBlank(queryAgentStore .getStoreName()))// 店铺关键字 { url.append("&queryAgentStore.storeName="+ XssFilterService.dhtmlSpecialchars(queryAgentStore.getStoreName())); } if (queryAgentStore.getCity()!=null)// 城市编码 { url.append("&queryAgentStore.city="+ queryAgentStore.getCity()); } if(orderByClause!=null&&!"".equals(orderByClause)) { url.append("&orderByClause="+orderByClause); } } else { url = new StringBuffer("agentstorelist.html"); } return url; } }, request); --------------调用分页标签时根据需要拼接链接地址-------------------------------- public class Pager { public Pager(LinkBuilder builder) { this.linkBuilder = builder; } public static Pager register(String name, LinkBuilder builder, HttpServletRequest request) { Pager pager = new Pager(builder); PagerDTO dto = PagerDTO.get(request); dto.add(name, pager); return pager; } public String getUrl(int page) { return staticTool.process(this.linkBuilder.getPageUrl(page).toString()); } }
示例三:
上篇博客中用策略模式改善dao层代码中有使用。
示例四:
Thread类的匿名内部类实现。
Runnable接口的匿名内部类实现。
public class Demo { public static void main(String[] args) { Thread t = new Thread() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; t.start(); } }
public class Demo { public static void main(String[] args) { Runnable r = new Runnable() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; Thread t = new Thread(r); t.start(); } }
使用匿名内部类的特点:
1.只能使用一次
2.接口或者抽象类都可以被实现为匿名内部类。
使用匿名内部类的好处:
可以省略一个类的书写。
发表评论
-
log4j关键点
2013-09-25 19:43 1012日志级别 级别顺序(低到高): DEBUG < INFO ... -
java集合排序
2013-09-24 19:18 1085java对象集合排序在开发中使用非常广泛,需要重点理解,而它实 ... -
关于java.lang.OutOfMemoryError的参数配置误区
2013-09-10 15:10 1077这两天在本机用eclipse的jetty插件跑项目,老是抛出一 ... -
spring这样的来配置一些常量很方便
2013-09-03 09:48 2454<util:list id="haidilao ... -
快速查找线程死锁(展苍)
2012-12-23 13:25 0Thread dump Thread dump是比较容易查找 ... -
javap查看虚拟机为你做了什么
2012-12-02 15:38 522public class Test { publi ... -
javaweb开发乱码问题整理
2012-03-15 14:01 959j2ee方面的开发总会遇到各种各样的乱码问题,总想抽空整理一下 ... -
用正则表达式扣出字符串中指定的多处内容
2011-12-26 15:29 1406截取打印出所有<record></recor ... -
java反射机制学习
2011-11-19 13:01 1008反射基本概念: 在java ... -
使用UUID生成32位ID
2011-11-14 11:11 21281UUID(Universally Unique Identif ... -
java数据类型介绍
2011-11-09 14:34 927java数据类型介绍 简单类型大小范围/精度 ... -
Exception点滴
2011-11-08 14:24 914java.lang.reflect.UndeclaredThr ... -
将set集合转为list并对对象进行排序
2011-11-06 15:09 7692之前用hibernate的时候,遇到一对多的表结构。比如班级( ... -
src地址为空导致两次进入到action请求地址
2011-10-29 13:05 1491今天用struts开发一个页面,奇怪的是我点了一次提交,达到目 ... -
struts标签与ognl表达式用法点滴
2011-10-27 18:43 1367struts标签的使用中,会涉及一些比较细的点儿,汇总一下,以 ... -
struts2第四回:工作流程解析
2011-10-14 15:18 833这两天没什么任务,就想研究一下struts2的源码,看了半天, ... -
struts2第三回:自定以拦截器
2011-10-13 19:14 1059实现一个拦截器并调用。 ============下面是Logi ... -
struts2第二回:防止重复提交
2011-10-13 18:51 2230基本原理:用户访问做了重复提交的页面,服务器会生成一个令牌,这 ... -
include与jsp:include与s:action与s:include与iframe用法汇总
2011-10-13 13:47 206511.<%@ include file="../ ... -
struts2第一回:validate框架使用
2011-10-12 16:42 4987struts2总结 ...
相关推荐
java常用类的方法列举,欢迎大家下载查看
列举java 枚举相关信息列举java 枚举相关信息列举java 枚举相关信息 列举java 枚举相关信息 列举java 枚举相关信息 列举java 枚举相关信息 列举java 枚举相关信息
java代码-使用java解决列举所有质数的源代码 ——学习参考资料:仅用于个人学习使用!
七、内部类和匿名类:介绍了Java中的内部类和匿名类的概念,包括不同类型的内部类以及匿名类的应用场景。 八、String和StringBuilder的区别:解释了String和StringBuilder的区别,包括不可变性和可变性的特点,以及...
java反射机制应用,文档中列举了使用java反射机制的各个应用场景,加以代码实例,使用学习非常方便。
资源分数必须最少填1,不好意思。如果没有积分可以去git链接下载,本人博客有git地址。博客地址:... java 遍历指定包下所有类,返回完整类名。工具类,可以直接拷入使用。
什么是Java中的面向对象编程(OOP)?列举OOP的原则。 什么是Java中的重载和重写?...列举一些常见的并发类和工具。 什么是Java中的线程池?如何创建和使用线程池? 什么是Java中的Callable和Future接口?如何使
\java_分页\(列举相应方法)\java_分页\(列举相应方法),,可以共勉1
列举了java常用开发类 及开发心得 设计SE的内容 WEB内容 以及android常用的匿名内部类
本文档系统列举了Java的关键字及其用法分类
JAVA方面的技术解惑,列举JAVA方面的许多实例并进行技术解惑
java 基础中的集合分类 list 、set、map, 及其各自所有的特点, 使用xmind 列举出来。
试列举java application或者applet中与servlet/jsp通信可以采用的方式。 31.简述逻辑操作(如&,|)与条件操作(如&&,||)的区别。 32.简述 Java Server Page 和 Servlet 的联系和区别。 33.简述synchronized和java....
JAVA基础知识列举.希望对你学习和自我检验有所帮助。
30道经典java面试题 当面试Java开发职位时,以下是另外一些经典的Java面试题供参考: 什么是Java中的面向对象编程(OOP)?列举OOP的原则。 什么是Java中的重载和重写?...列举一些常见的并发类和工具。 什么是Ja
详细列举屏幕边缘侧滑手势的各种使用场景及常见问题的解决方法
智慧广场《分类列举》教学设计可用.pdf
准备面试Java开发岗位?不要担心!...解释什么是Java的设计模式,并列举几个常用的设计模式及其应用场景。 这些题目涵盖了Java开发中的核心概念和常见问题,帮助您准备面试。祝您面试成功,取得理想的职位!
PPT目录和分类列举,各种各样的PPT模板
准备面试Java开发岗位?不要担心!...解释什么是Java的设计模式,并列举几个常用的设计模式及其应用场景。 这些题目涵盖了Java开发中的核心概念和常见问题,帮助您准备面试。祝您面试成功,取得理想的职位!