67,513
社区成员
发帖
与我相关
我的任务
分享
/** from: spring-framework-2.5.6.jar **/
/* */ public class HibernateTemplate extends HibernateAccessor
/* */ implements HibernateOperations
/* */ {
//...............
/* */ public Object get(String entityName, Serializable id, LockMode lockMode)
/* */ throws DataAccessException
/* */ {
/* 544 */ return executeWithNativeSession(new HibernateCallback(lockMode, entityName, id) {
/* */ public Object doInHibernate(org.hibernate.Session session) throws HibernateException {
/* 546 */ if (this.val$lockMode != null) {
/* 547 */ return session.get(this.val$entityName, this.val$id, this.val$lockMode);
/* */ }
/* */
/* 550 */ return session.get(this.val$entityName, this.val$id);
/* */ }
/* */ });
/* */ }
//...........
/** from: spring-framework-2.5.6.jar **/
public abstract interface HibernateCallback
{
public abstract Object doInHibernate(Session paramSession)
throws HibernateException, SQLException;
}
/********* StuffAdd.java ***********/
package com.fooo.interfacedemo;
public class StuffAdd {
private String data;
public void add(Object o){
this.data += o.toString();
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
/********* IFooInterface .java ***********/
package com.fooo.interfacedemo;
public abstract interface IFooInterface {
public abstract String doFoo(StuffAdd s);
}
/********* FooInterfaceClient .java ***********/
package com.fooo.interfacedemo;
public class FooInterfaceClient {
private StuffAdd sa;
public StuffAdd getSa() {
return sa;
}
public void setSa(StuffAdd sa) {
this.sa = sa;
}
public Object foo1(IFooInterface inter) {
return inter.doFoo(sa);
}
}
/********* TestIFooInterface .java ***********/
package com.fooo.interfacedemo;
public class TestIFooInterface {
private static void doFun(final int a,final String b, final float c){
FooInterfaceClient client = new FooInterfaceClient();
StuffAdd sa = new StuffAdd();
client.setSa(sa);
client.foo1(new IFooInterface(a,b,c) {
public String doFoo(StuffAdd s) {
s.add(a);
s.add(b);
s.add(c);
System.out.println(s.getData().toString());
}
});
}
/**
* @param args
*/
public static void main(String[] args) {
doFun(1,"2",3.3f);
}
}
abstract class IFooInterface {
IFooInterface(int a,String b,float c){
}
public abstract String doFoo(StuffAdd s);
}
client.foo1(new IFooInterface(a,b,c) {
public String doFoo(StuffAdd s) {
s.add(a);
s.add(b);
s.add(c);
System.out.println(s.getData().toString());
return s.getData(); //added
}
});