Public Constructor in atg

Hi ,
i was going through the doc Public Constructor , why constructor without args is needed in creating a nucleus component. i create a component like
Test.java
name;
getxx();
setxx();
Test.properties
name=Kavi
when i went to dyn/admin im able to see the value 'Kavi' under name property in Test Component,then what is the need of a default constructor.Please add your inputs
Regards
G.KaviMani

Hi Joe,
Oracle ATG Web Commerce - Public Constructor with No Arguments
Public Constructor with No Arguments
Nucleus can create a component automatically from a properties file if the component class is declared public and it implements a public constructor with no arguments. For example:
public class Person {
  public Person () {}
The constructor is not required to be empty. However, as shown later in this chapter, it is often a good idea to defer initialization functions until after the component starts.
If the constructor for the component class requires arguments, you will need to supply additional information. See Parameterized Constructors.
So this means the above highlighted statement is not mandatory correct ?? Pls correct me if am wrong.
Regards
G.KaviMani

Similar Messages

  • Public constructor problem

    I am getting the following error
    The applet orderproc.NewUser does not have a public constructor orderproc.NewUser()
    I dont understand this as the rest of my applets have similar code but dont get this problem. Can any of you nice people out there help. Here is my code:
    package orderproc;
    import java.lang.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.net.URL;
    import java.sql.*;
    * <p>Title: </p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2003</p>
    * <p>Company: </p>
    * @author unascribed
    * @version 1.0
    public class NewUser extends JApplet implements ActionListener {
    JPanel westPanel;
    JPanel eastPanel;
    JLabel lblFirstName, lblLastName, lblPassword, lblUserName;
    JTextField txtFirstName,txtLastName,txtUserName, txtPassword;
    JButton btnSubmit, btnBack, btnCancel;
    String FN,LN,PS,UID;
    public NewUser()
    GridBagLayout gbl;
    GridBagConstraints gbc;
    gbl = new GridBagLayout();
    gbc = new GridBagConstraints();
    westPanel = new JPanel();
    westPanel.setLayout(gbl);
    eastPanel = new JPanel();
    eastPanel.setLayout(gbl);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(westPanel, BorderLayout.CENTER);
    getContentPane().add(eastPanel, BorderLayout.SOUTH);
    lblFirstName = new JLabel("First Name: ");
    lblLastName = new JLabel("Last Name: ");
    lblPassword = new JLabel("Password: ");
    lblPassword = new JLabel("User Name: ");
    txtFirstName = new JTextField(15);
    txtPassword = new JTextField(15);
    txtLastName = new JTextField(15);
    txtUserName = new JTextField(15);
    btnSubmit = new JButton("Submit");
    btnSubmit.addActionListener(this);
    eastPanel.add(btnSubmit);
    btnCancel = new JButton("Cancel");
    btnCancel.addActionListener(this);
    eastPanel.add(btnCancel);
    btnBack = new JButton("<<<<Back");
    btnBack.addActionListener(this);
    eastPanel.add(btnBack);
    gbc.anchor = GridBagConstraints.NORTH; // Align labels
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbl.setConstraints(lblFirstName, gbc);
    westPanel.add(lblFirstName);
    gbc.gridx = 1;
    gbc.gridy = 2;
    gbl.setConstraints(lblLastName, gbc);
    westPanel.add(lblLastName);
    gbc.gridx = 1;
    gbc.gridy = 3;
    gbl.setConstraints(lblPassword, gbc);
    westPanel.add(lblPassword);
    gbc.gridx = 1;
    gbc.gridy = 4;
    gbl.setConstraints(lblUserName, gbc);
    westPanel.add(lblUserName);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 2;
    gbc.gridy = 1;
    gbl.setConstraints(txtFirstName, gbc);
    txtFirstName.setEditable(true);
    westPanel.add(txtFirstName);
    gbc.gridx = 2;
    gbc.gridy = 2;
    gbl.setConstraints(txtLastName, gbc);
    txtPassword.setEditable(true);
    westPanel.add(txtLastName);
    gbc.gridx = 2;
    gbc.gridy = 3;
    gbl.setConstraints(txtPassword, gbc);
    txtPassword.setEditable(true);
    westPanel.add(txtPassword);
    gbc.gridx = 2;
    gbc.gridy = 4;
    gbl.setConstraints(txtUserName, gbc);
    txtUserName.setEditable(true);
    westPanel.add(txtUserName);
    public void actionPerformed(ActionEvent ae) // Action event handling
    if(ae.getSource() == btnBack)
    setVisible(false);
    else if(ae.getSource() == btnCancel)
    txtFirstName.setText(null);
    txtPassword.setText(null);
    txtLastName.setText(null);
    txtUserName.setText(null);
    else if(ae.getSource() == btnSubmit)
    FN = txtFirstName.getText();
    LN = txtLastName.getText();
    PS = txtPassword.getText();
    UID = txtUserName.getText();
    try
    //connect to database
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    System.out.println("Drivers loaded");
    String url = "jdbc:odbc:wms";
    Connection con = DriverManager.getConnection(url,"root","");
    System.out.println("Connection established");
    Statement stmt = con.createStatement();
    System.out.println("Statement created");
    ResultSet res = stmt.executeQuery("INSERT INTO login (FirstName, LastName, Password, UserName) VALUES ('"+FN+"','"+LN+"', '"+PS+"','"+UID+"')");
    con.close();
    catch(Exception e)
    txtFirstName.setText(null);
    txtLastName.setText(null);
    txtPassword.setText(null);
    txtUserName.setText(null);
    public void init()
    NewUser myNewUser = new NewUser();

    Why don't you just implement the RSAPrivateKey and RSAPublicKey interfaces?

  • ERROR:The applet Tennisball does not have a public constructor Tennisball()

    hi all...sorry...i encountered this java error msg with the following code.....n the error msg tat was generated is that i do not have a public constructor which i already have...can some1 please enlighten me..??
    import java.applet.*;
    import java.awt.*;
    public class Tennisball
         double x, y, oldx, oldy, xinc, yinc, v=2.0;
         int i,e,west,north,east,south,ry,rs,score,rx;
         int choice, zone;
         AudioClip ballout;
         boolean running,toggle,enough;
            Color ballcolor;
         Tennis t;
         Color bgColor = Color.black;
         public Tennisball(int w, int n, int e, int s, AudioClip bo)
                    west=w;
              east=e;
              south=s;
              north=n;
              ballout = bo;
              //this.t = t;
              xinc=1.7*v;
              yinc=0.7*v;
         public void getRacketPosition(int racket_y)
              ry=racket_y;
              rs=ry;
         public void newBall()
              ballcolor=Color.yellow;
              x=20;
              y=(int)(Math.random()*100+50);
              int angle=(int)(Math.random()*8+1);
              if(angle==1)yinc=-0.7*v;
              if(angle==2)yinc=-0.5*v;
              if(angle==3)yinc=-0.4*v;
              if(angle==4)yinc=-0.3*v;
              if(angle==5)yinc=0.3*v;
              if(angle==6)yinc=0.4*v;
              if(angle==7)yinc=0.5*v;
              if(angle==8)yinc=0.7*v;
              toggle=false;
              running=true;
              enough=false;
              e=0;
         public void move()
              if(running)
                   if(!toggle)
                        oldx=x;
                        oldy=y;
                        x+=xinc*v;
                        y+=yinc*v;
                   if(x<west && xinc<0)
                        int angle=(int)(Math.random()*8+1);
                        if(angle==1)yinc=-0.7*v;
                        if(angle==2)yinc=-0.5*v;
                        if(angle==3)yinc=-0.4*v;
                        if(angle==4)yinc=-0.3*v;
                        if(angle==5)yinc=0.3*v;
                        if(angle==6)yinc=0.4*v;
                        if(angle==7)yinc=0.5*v;
                        if(angle==8)yinc=0.7*v;
                       xinc=-xinc;
                        t.playClick();
                   else if(x>east-10)
                        x=east-10;
                        toggle=true;
                        running=false;
                        score++;
                        t.playBallout();
                   else if(y<north || y>south)
                       if(y<north&&yinc<0)
                             yinc=-yinc;
                        if(y>south&&yinc>0)
                             yinc=-yinc;
                        t.playClick();
                   else if(x>425 && xinc>0 && y>ry && y<rs+25)
                        if(y<ry+3)zone=1;
                        else if(y>=ry+3&&y<ry+6)zone=2;
                        else if(y>=ry+6&&y<ry+9)zone=3;
                        else if(y>=ry+9&&y<ry+12)zone=4;
                        else if(y>=ry+12&&y<ry+15)zone=5;
                        else if(y>=ry+15&&y<ry+18)zone=6;
                        else if(y>=ry+18&&y<ry+21)zone=7;
                        else if(y>=ry+21)zone=8;
                        if(zone==1)yinc=-0.7*v;
                        if(zone==2)yinc=-0.5*v;
                        if(zone==3)yinc=-0.4*v;
                        if(zone==4)yinc=-0.3*v;
                        if(zone==5)yinc=0.3*v;
                        if(zone==6)yinc=0.4*v;
                        if(zone==7)yinc=0.5*v;
                        if(zone==8)yinc=0.7*v;
                        xinc=-xinc;
                        t.playClick();
         public void toggle()
                        int i=t.j;
                        if(!enough)
                             if(i>-1&&i<11)ballcolor=Color.yellow;
                             if(i>10&&i<20){ballcolor=bgColor;e++;}
                        if (e>35){ballcolor=bgColor;enough=true;}
         public void paint(Graphics g)
              if(toggle)toggle();
              g.setColor(ballcolor);
              g.fillOval((int)x,(int)y,10,10);
    }

    I thought I should point out a few things
    The rule is that every class should have a no
    argument constructor that you need to specify
    explicitly if you have overloaded the default one.
    One of the reaons for that is the following:This is not true, there are many classes that do not have a no argument constructor (For example Integer). Integer is a perfect example of why you would not want a no argument constructor, having an Integer with no value is pointless (theres nothing you can do with it).
    public class A {
    private final int a ;
    public A(int b) {
    this.a = b ;
    }Now you realize that the variable
    n
    is getting initialized in the constructor. I see no variable n in the constructor but I take it you mean a
    Now if you
    refer to
    n
    somewhere else in you code you get a compile error because
    n
    might not have been initialized.This is not true, only local variables can cause a
    variable (a variable) might not have been initialized
    this is because all member fields are initialised with their default valuse. For example all pointers are intitialised to null, ints are intitialised to 0, booleans to false and so on.
    >
    So you need this:
    public class A {
    private final int a ;
    public A(int b) {
    this.a = b ;
    public A() {
    this(0) ; /* Calls the above constructor with some
    default parameter. */
    /* You can add some more code below but not above
    this(0) */
    Of course you know you are never calling the default
    constructor but it's still there so you need to
    ensure that the variables get initialized if some one
    calls it!
    As above classes can have no argument constructors
    Just add this to your code for example:
    public Tennisball() {
    this(0, 0, 0, 0, null) ;
    } Hope that helped you out!
    Thanks,
    Nikolas.
    PS any duke dollars would be much appreciated as i'm
    very poor at the moment :-)I dont mean to be offensive just thought I should clarify these points
    Michael

  • Applet - JavaPurse does not have a public constructor

    Hello,
    I'm starting playing with Javacard and I tried to compile a demo of Java purse Applet.
    I can compile it withou problem but once I try to start it with JBuilder 2006 I get the following error :
    The applet com.sun.javacard.samples.JavaPurse.JavaPurse does not have a public constructor com.sun.javacard.samples.JavaPurse.JavaPurse()
    Here is a part of my code
    public class JavaPurse extends javacard.framework.Applet {
    protected JavaPurse(byte[] bArray, short bOffset, byte bLength) {
    public static void install(byte[] bArray, short bOffset, byte bLength) {
    new JavaPurse(bArray, bOffset, bLength);
    Does anyone of you know why JBuilder is displaying this error message?
    Thanks in advance fo you reply.
    Alain.

    I don't think that's the error message; there is no class "java.awt.Applet". Are you sure it doesn't say "java.applet.Applet"?
    In any event, I don't know about javacard, but I suspect that javacard applets are not interchangeable with browser applets. My guess is that when JBuilder tries to build an applet, it's thinking about browser applets. Therefore it expects your applet to be a subclass of java.applet.Applet.
    I don't know how JBuilder works, but perhaps you can try using normal compilation instead of whatever JBuilder provides for applets.

  • GetCodeBase() generates "does not have a public constructor"

    I've been searching the net for days, and I seem to be the only guy with this problem. Here's the simple code:
    public class testapplet extends JApplet {
    public testapplet() {
    URL url = getCodeBase();
    I get the error message:
    The applet testapplet does not have a public constructor testapplet()
    I once had the same error message, but it was an entirely different problem. At that time, I made an JMenu[2] and somewhere in the code addressed JMenu[3];
    As I said, this has nothing to do with my current problem, but I get VERY frustrated when I get such an error.
    I'm running JBuilder6 on Win XP. Please help! desperate cry

    Damn, it helped. O_O Thanks a lot! As you can tell, I'm new to this. I was surprised since in my other program, I wrote a lot of stuff without that init procedure and it worked...
    Thanks again!

  • Default class with public constructor - why?

    Noticed some code that had a class with package-level access and a public constructor - wondered what the benefit/use of that would be... Thanks!

    GarudaJava wrote:
    Noticed some code that had a class with package-level access and a public constructor - wondered what the benefit/use of that would be... Thanks!If the class itself doesn't need to be exposed, but it implements some interface, and is assumed to have a public no-arg consturctor, it could be created reflexively. This is a contrived situation, but it's the only one I can think of in Java where that'd be useful.
    package foo;
    class Foo implements SomeInterface {
      public Foo() {
    package factory;
    class Factory {
      public static SomeInterface create(Class<? extends SomeInterface> clazz) { // not sure if I got the generics right, but they're incidendtal to the example
        return clazz.newInstance();
    package foo;
    import factory.Factory;
    public class Bar {
      public void bar() {
        SomeInterface si = Factory.create(Foo.class);
        si.doStuff();
    }Like I said, pretty contrived, and I can't think of a real-world use case that matches it offhand, but structurally it'd look something like that.
    You could also maybe imagine that the factory package might do more than just create and return an instance. It might create it and use that SomeInterface type for its own ends.

  • No public constructor, why?

    The Pattern and Matcher classes in in java.uti.regex package do not have public constructors. Instead, an object for those classes can be retrieved by invoking their static methods, Pattern.compile() and Matcher.matcher() respectively.
    What is the reason? Why do they not have public constructor?
    It is not clearly an implementation of Singleton Pattern which is characterized by getInstance() method.
    Thanks in advance

    sosododo wrote:
    The Pattern and Matcher classes in in java.uti.regex package do not have public constructors. Instead, an object for those classes can be retrieved by invoking their static methods, Pattern.compile() and Matcher.matcher() respectively.
    What is the reason? Why do they not have public constructor?
    It is not clearly an implementation of Singleton Pattern which is characterized by getInstance() method.
    Thanks in advancePlease be aware that the singleton pattern is not characterized by a getInstance method (which is in fact a factory method) and nor is the presence of a method called getInstance any indicator of a singleton. Here is a perfectly valid (and more thread-safe) implementation of the singleton pattern
    public class ASingleton {
    public static final ASingleton INSTANCE = new ASingleton();
      private ASingleton() {}
    }Not a getInstance in sight

  • Object with argument constructor in ATG

    HI guys
    Is it possible to craete an object with argument constructor with component in atg
    if it is possible give me an example

    With ATG 10.0.3 and later, you can use an $instanceFactory to create objects with constructor objects or create a Nucleus component from factory (either a static class method, or a method of another Nucleus component).
    Documentation (and an example) are here: http://docs.oracle.com/cd/E36434_01/Platform.10-1-2/ATGPlatformProgGuide/html/s0208parameterconstructorinstancefact01.html

  • The applet FtpExample does not have a public constructor FtpExample()

    Hi
    Get this from my Jbuilder, but I got an constructor. What's the problem ?
    import ftp.*;
    import java.io.*;
    import java.applet.*;
    class FtpExample implements FtpObserver, Runnable
    Thread thread;
    FtpBean ftp;
    long num_of_bytes = 0;
    public FtpExample()
    // Create a new FtpBean object.
    ftp = new FtpBean();
    try {
    jbInit();
    } catch (Exception ex) {
    ex.printStackTrace();
    // Connect to a ftp server.
    public void connect()
    try
    ftp.ftpConnect("xxxxxxxxxxxx", "xxxxxxx", "xxxxxxx");
    } catch(Exception e)
    System.out.println(e);
    and more...
    .

    I thought I should point out a few things
    The rule is that every class should have a no
    argument constructor that you need to specify
    explicitly if you have overloaded the default one.
    One of the reaons for that is the following:This is not true, there are many classes that do not have a no argument constructor (For example Integer). Integer is a perfect example of why you would not want a no argument constructor, having an Integer with no value is pointless (theres nothing you can do with it).
    public class A {
    private final int a ;
    public A(int b) {
    this.a = b ;
    }Now you realize that the variable
    n
    is getting initialized in the constructor. I see no variable n in the constructor but I take it you mean a
    Now if you
    refer to
    n
    somewhere else in you code you get a compile error because
    n
    might not have been initialized.This is not true, only local variables can cause a
    variable (a variable) might not have been initialized
    this is because all member fields are initialised with their default valuse. For example all pointers are intitialised to null, ints are intitialised to 0, booleans to false and so on.
    >
    So you need this:
    public class A {
    private final int a ;
    public A(int b) {
    this.a = b ;
    public A() {
    this(0) ; /* Calls the above constructor with some
    default parameter. */
    /* You can add some more code below but not above
    this(0) */
    Of course you know you are never calling the default
    constructor but it's still there so you need to
    ensure that the variables get initialized if some one
    calls it!
    As above classes can have no argument constructors
    Just add this to your code for example:
    public Tennisball() {
    this(0, 0, 0, 0, null) ;
    } Hope that helped you out!
    Thanks,
    Nikolas.
    PS any duke dollars would be much appreciated as i'm
    very poor at the moment :-)I dont mean to be offensive just thought I should clarify these points
    Michael

  • Class with no constructors

    The class javax.microedition.rms .RecordStore does not have a constructor. Why?
    Please note that I am not asking how to produce an instance of a RecordStore, I have read the documentation and am aware of the static openRecordStore method.
    Paul Hide

    javax.microedition.rms.RecordStore has no public or protected constructor so you can't extend it.
    If a private constructor is defined in a class then it is not exposed in documentation (usually), but at the other hand if you have not defined any constructor then non-argument public constructor is shown in the documentation.
    So it seems that javax.microedition.rms.RecordStore has private constructor.
    So you can't extend it.
    Following two type of classes are non-extendable:
    - Whose all constructors are made private. E.g. java.lang.Runtime, java.lang.System.
    - Final class (just final keyworkd is added in access specifiers). E.g. java.lang.String
    Following two type of classes are non-instantiable:
    - Whose all constructors are made private. These can be instantiated inside the class. E.g. java.lang.Runtime, java.lang.System
    - Abstract class (just abstract keyword is added in access specifiers). E.g. java.io.OutputStream
    Regards,
    Humayun.

  • How to implement pagination in atg

    Hi,
    I am new to atg and wants to implement pagination in atg.
    Please let me know how to start with it?

    Hi,
    I have done something like this.
    Please see the below as for your requirement-
    1)input.jsp:-
    *<%@ taglib uri="/dspTaglib" prefix="dsp" %>*
    *<%@ page import="atg.servlet.*" %>*
    *<dsp:page>*
    *<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">*
    *<html xmlns="http://www.w3.org/1999/xhtml">*
    *<head>*
    *<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />*
    *<title>CSS Pagination Style Template</title>*
    *<style type="text/css">*
    *<!--*
    *#tnt_pagination {*
    *     display:block;*
    *     text-align:left;*
    *     height:22px;*
    *     line-height:21px;*
    *     clear:both;*
    *     padding-top:3px;*
    *     font-family:Arial, Helvetica, sans-serif;*
    *     font-size:12px;*
    *     font-weight:normal;*
    *#tnt_pagination a:link, #tnt_pagination a:visited{*
    *     padding:7px;*
    *     padding-top:2px;*
    *     padding-bottom:2px;*
    *     border:1px solid #EBEBEB;*
    *     margin-left:10px;*
    *     text-decoration:none;*
    *     background-color:#F5F5F5;*
    *     color:#0072bc;*
    *     width:22px;*
    *     font-weight:normal;*
    *#tnt_pagination a:hover {*
    *     background-color:#DDEEFF;*
    *     border:1px solid #BBDDFF;*
    *     color:#0072BC;     *
    *#tnt_pagination .active_tnt_link {*
    *     padding:7px;*
    *     padding-top:2px;*
    *     padding-bottom:2px;*
    *     border:1px solid #BBDDFF;*
    *     margin-left:10px;*
    *     text-decoration:none;*
    *     background-color:#DDEEFF;*
    *     color:#0072BC;*
    *     cursor:default;*
    *#tnt_pagination .disabled_tnt_pagination {*
    *     padding:7px;*
    *     padding-top:2px;*
    *     padding-bottom:2px;*
    *     border:1px solid #EBEBEB;*
    *     margin-left:10px;*
    *     text-decoration:none;*
    *     background-color:#F5F5F5;*
    *     color:#D7D7D7;*
    *     cursor:default;*
    -->
    *</style>*
    *</head>*
    *<body>*
    *<div id="tnt_pagination">*
    *<span class="disabled_tnt_pagination">Prev</span>*
    *<span class="active_tnt_link">4</span>*
    *<dsp:droplet name="/com/FirstAssignmentDroplet">*
    *          <dsp:param name="count" value="5"/>*
    *          <dsp:oparam name="output">*
    *     <dsp:valueof param="index"/>*
    *          </dsp:oparam>*
    *     </dsp:droplet>*
    *     Next</div>*
    *</body>*
    *</html>*
    *</dsp:page>*     
    2)CompareDroplet.java:-
    package com;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import atg.core.util.StringUtils;
    import atg.servlet.DynamoHttpServletRequest;
    import atg.servlet.DynamoHttpServletResponse;
    import atg.servlet.DynamoServlet;
    ** @author Prateek g*
    *public class CompareDroplet extends DynamoServlet {*
    *     public void service(DynamoHttpServletRequest req,DynamoHttpServletResponse res) throws ServletException,IOException{*
    *          String param1 = req.getParameter("param1");*
    *          String param2 = req.getParameter("param2");*
    *          if (!StringUtils.isBlank(param1) && !StringUtils.isBlank(param2)) {*
    *               if (param1.equalsIgnoreCase(param2)) {*
    *                    req.serviceParameter("true", req, res);*
    *               } else {*
    *                    req.serviceParameter("false", req, res);*
    *          } else {*
    *               req.serviceParameter("false", req, res);*
    3)CompareDroplet.properties:-
    *$class=com.CompareDroplet*
    4)FirstAssignmentDroplet.java:-
    package com;
    *public class MyDroplet extends atg.servlet.DynamoServlet{*
    *     public static final atg.nucleus.naming.ParameterName COUNT=atg.nucleus.naming.ParameterName.getParameterName("count");*
    *     public static final atg.nucleus.naming.ParameterName OUTPUT = atg.nucleus.naming.ParameterName.getParameterName("output");*
    *     public void service(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws ServletException, IOException {*
    *          int count=Integer.parseInt(pRequest.getParameter(COUNT));*
    *          for(int i=1;i<=count;i++){*
    pRequest.setParameter("index", i);
    *               pRequest.serviceParameter(OUTPUT, pRequest, pResponse);*
    And make the properties file for this droplet also and run your program.
    Hope it works!
    Regards,
    Prateek Gupta
    Edited by: Prateek G on May 27, 2013 1:04 AM

  • Can java have Protected or Private Constructor

    Hi,
    can java have Priavte or protected constructor,
    as we know java have default and public constructor ,
    and in using singleton design patters we can use private & protected constructor,
    so, what is the main logic,
    Regards,
    Prabhat

    Hi,
    Yes, We can declare constructor as private/public/protected also.
    Having only private constructors means that you can't instantiate the class from outside the class (although instances could still be created from within the class - more about this later). However, when you instantiate a class, you must first initialize all superclasses of that class by invoking their constructors. If one of the superclasses has only private constructors declared, we have a problem. We can't invoke the superclass' constructor which means that we can't instantiate our object. Because of this, we've essentially made a class that can't be extended.
    example:
    class TheWorld
    private static TheWorld _instance = null;
    private TheWorld() {}
    public static TheWorld instance()
    if ( _instance == null )
    _instance = new TheWorld();
    return _instance;
    public void spin() {...}
    public class WorldUser
    public static void main(String[] args)
    TheWorld.instance().spin();
    }

  • Constructor of package protected class

    Why has class Test no constructor when trying to get the default constructor by reflection.
    class Test {
         public static void main(String[] args){
              try {
                   Class test=Test.class;
                   Constructor[] ctor= test.getConstructors();
                   System.out.println(ctor.length);
              } catch (Exception e) {
                   e.printStackTrace();
    }

    Returns:
    the array of Class objects representing all the
    the declared members of this classWrong citation:
    Returns an array containing Constructor objects reflecting all the public constructors of the class represented by this Class object. An array of length 0 is returned if the class has no public constructors, or if the class is an array class, or if the class reflects a primitive type or void.

  • Getting Private Constructor of a Class

    Hello all,
    Is there any way to get the private constructor as we get the public constructors using Class.getConstructors() ?
    getConstructors() method is not returning the private constructors, but I need the info about the private constructors also....so if it is possible, please let me know...
    Thanks

    tullio0106 wrote:
    I know, however it's also impossible to invoke private methods but, using reflection, You can.That's a complete different thing. If the private method is not static, it is invoked on the current instance.
    Is it also possible to use private constructors in the same way.
    The problem I'm facing is to create a new instance of a class which extends another class and I need to use a private constructor of the superclass (I've no sources of that superclass).First, the Constructor of a class has to invoke a Constructor of a superclass as the first operation (either implicitely invoking an empty constructor or explicitely). There is no way to do any other operation before that. Second, a reflectively fetched Constructor instance always only can create instances of the class it is defined at (using newInstance()). So, yes, you could get access to a private Constructor. With that, you may be able to create a new instance of the class it is defined for. But that's about it.

  • Wscompile + xmlbeans: class does not have a public accessible empty constru

    Hi
    I have some schema files from 3gpp.org and created java files with xmlbeans.
    Now I try to use them but wscompile complains:
    error: class provider.VersionType$Enum does not have a public accessible empty constructor
    that class is generated by xmlbeans and I can't modify it...
    The class is an innner class of an interface, and looks like this:
    * Enumeration value class for provider.VersionType.
    * These enum values can be used as follows:
    * <pre>
    * enum.toString(); // returns the string value of the enum
    * enum.intValue(); // returns an int value, useful for switches
    * // e.g., case Enum.INT_X_5_3_0
    * Enum.forString(s); // returns the enum value for a string
    * Enum.forInt(i); // returns the enum value for an int
    * </pre>
    * Enumeration objects are immutable singleton objects that
    * can be compared using == object equality. They have no
    * public constructor. See the constants defined within this
    * class for all the valid values.
    static final class Enum extends org.apache.xmlbeans.StringEnumAbstractBase
    * Returns the enum value for a string, or null if none.
    public static Enum forString(java.lang.String s)
    { return (Enum)table.forString(s); }
    * Returns the enum value corresponding to an int, or null if none.
    public static Enum forInt(int i)
    { return (Enum)table.forInt(i); }
    private Enum(java.lang.String s, int i)
    { super(s, i); }
    static final int INT_X_5_3_0 = 1;
    public static final org.apache.xmlbeans.StringEnumAbstractBase.Table table =
    new org.apache.xmlbeans.StringEnumAbstractBase.Table
    new Enum[]
    new Enum("5.3.0", INT_X_5_3_0),
    private static final long serialVersionUID = 1L;
    private java.lang.Object readResolve() { return forInt(intValue()); }
    Can anyybody help me ?
    thanks
    Gabor

    Sorry, I think you are out-of-luck on this one. The JAXRPC spec mandates that an acceptable value type have a public empty constructor. The only work-around I can suggest is to write a wrapper bean around this one that has such a constructor and use that in you interface instead.

Maybe you are looking for