在這個類中,用到了私有構造函數,如粗體部分.
我的調用類:
package zy.pro.td.plugin;
/*
* Created on Oct 4, 2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
import Javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
import Javax.naming.Context;
import Javax.naming.InitialContext;
import zy.pro.td.util.HibernateSessionFactory;
/**
* @author sunil
*
* This class will initialize hibernate and bind SessionFactory in JNDI at the
* time of application and startup and unbind it from JNDI at the time of application
* shutdown
*/
public class HibernatePlugin
implements PlugIn {
private static final String jndi_hibernate = "jndi_hibernate_factory";
private HibernateSessionFactory hsf;
private String name;
public HibernatePlugin() {
hsf=new HibernateSessionFactory();
}
// This method will be called at the time of application shutdown
public void destroy() {
System.out.println("Entering HibernatePlugIn.destroy()");
//Put hibernate cleanup code here
System.out.println("Exiting HibernatePlugIn.destroy()");
}
//This method will be called at the time of application startup
public void init(ActionServlet actionServlet, ModuleConfig config) throws
ServletException {
System.out.println("Entering HibernatePlugIn.init()");
System.out.println("Value of init parameter " + getName());
//Uncomment next two lines if you want to throw UnavailableException from your servlet
// if(true)
// throw new ServletException("Error configuring HibernatePlugIn");
System.out.println("Exiting HibernatePlugIn.init()");
}
private void bindFactoryToJNDI() {
try {
Context ctx = new InitialContext();
}
catch (Exception e) {
e.printStackTrace();
}
}
public String getName() {
return name;
}
public void setName(String string) {
name = string;
}
}
在調用類中,我創建了一個HibernateSessionFactory的對象,但是在初始化時,卻出了問題.總提示說:
HibernateSessionFactory() has private Access in zy.pro.td.util.HibernateSessionFactory at line 35(35:9)
然後,我就將HibernateSessionFactory的構造函數由private改成了public,調試通過.
構造函數為私有,就不能創建該類的對象.
本文來自編程入門網:http://www.bianceng.cn/Programming/Java/201107/27860_2.htm