编程技巧整理
2012-12-27 09:21
162 查看
1 数据库层或者逻辑层执行查询集合,如果null可以返回 Collections.empty_list,这样调用者就不必判断是不是为null
2 对某种操作查询加入延时动作
内部类示例一:
Java代码
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));
}
}
示例二:
这是我们工程中匿名内部类在分页方法中的运用,动态拼接分页链接地址:
Java代码
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());
}
}
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; } }
内部类示例一:
Java代码
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() { @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)); } }
示例二:
这是我们工程中匿名内部类在分页方法中的运用,动态拼接分页链接地址:
Java代码
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 { @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()); } }
相关文章推荐
- VC编程技巧整理
- [Swift]实际编程过程中的技巧整理(待更新)
- 论坛上别人整理的一些编程技巧(觉得实用)
- android JNI编程 一些技巧(整理)
- 收集整理了一些开发技巧专题,并汇集成一个编程学习网站
- 整理一些提高C#编程性能的技巧
- IT第十天 - String和StringBuffer的比较、编程设计技巧整理、本周总结 ★★★
- 【转】android JNI编程 一些技巧(整理)
- 整理搜集一些常用的编程IT技巧学习平台
- VC编程技巧整理
- 整理了一些t-sql技巧
- c编程技巧——获取可用的处理器(cpu)核数
- 编程必知的10个Unix命令技巧
- 【整理】重叠IO模型的编程思路及C++源代码
- 程序员:提高编程效率的技巧
- vim编程技巧
- VFP编程技巧
- 学习使用的编程及调试技巧
- 用C#编程的一些建议(规范写法,使用技巧,少走弯路)ZZ
- Linux Shell 编程实战技巧