编程技巧整理
来源:互联网 发布:那个软件电影票便宜 编辑:程序博客网 时间:2024/05/20 20:47
1 数据库层或者逻辑层执行查询集合,如果null可以返回 Collections.empty_list,这样调用者就不必判断是不是为null
2 对某种操作查询加入延时动作
protected static class JMXConnectorCatcher implements Callable< JMXConnector >{ private final IJMXProtocolProvider provider; private final ASNode node; private final ExecutorService executor; public JMXConnectorCatcher( final IJMXProtocolProvider provider, final ASNode node ){ this.provider = provider; this.node = node; this.executor = Executors.newCachedThreadPool( ); } public JMXConnector call( ) throws Exception{ return this.provider.getJMXConnector( this.node ); } public JMXConnector getConnector( ) throws Exception{ if( !this.executor.isShutdown( ) ){ final Future< JMXConnector > future = this.executor.submit( this ); final JMXConnector connector = future.get( 10, TimeUnit.SECONDS ); this.executor.shutdown( ); return connector; } return null; }}
内部类示例一:
- 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));
- }
- }
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() {@Overridepublic 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() {@Overridepublic double operateTwoIntNum(int a, int b) {// TODO Auto-generated method stubreturn 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 String getUrl(int page) {
- return staticTool.process(this.linkBuilder.getPageUrl(page).toString());
- }
- }
public interface LinkBuilder {public StringBuffer getPagerUrl();//public void setPage(int page);public StringBuffer getPageUrl(int page);}public abstract class AbstractLinkBuilder implements LinkBuilder {@Overridepublic 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() {@Overridepublic 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 String getUrl(int page) {return staticTool.process(this.linkBuilder.getPageUrl(page).toString());}}
- VC编程技巧整理
- VC编程技巧整理
- 编程技巧整理
- android JNI编程 一些技巧(整理)
- 25条CSS编程提醒及小技巧整理
- 25条CSS编程提醒及小技巧整理
- 25条div+CSS编程提醒及小技巧整理
- [Swift]实际编程过程中的技巧整理(待更新)
- 整理搜集一些常用的编程IT技巧学习平台
- vim技巧整理
- FastReport自整理技巧
- 整理Html技巧
- FastReport问题整理(技巧)
- FastReport问题整理(技巧)
- 常用小技巧整理
- WinEdt使用技巧整理
- gdb 调试技巧整理
- [整理]python 小技巧
- struts2 (一) web.xml/struts.xml/Action 配置
- 一个程序员的哲学思考(关于编程、关于人生)
- write readln(tempStr); writeln(tempStr,'---!');
- 基于单文档的记事本开发 .
- mount nfs ubuntu10.04
- 编程技巧整理
- Android SQLite基本操作
- Hibernate——脏检查和缓存清理机制
- 在 UML 静态结构图中使用类和对象
- PyQt学习总结
- 《 如果让我重新读次研究生》——王泛森院士
- ScreenShot 连带鼠标的抓屏单元
- 利用百度指数决定关键词的选取
- oracle 备份/恢复