How To write Immutable Class

Hi All
can We write Immutable Class. If yes Then How.
In my View It can be through final Keyword.

An immutable class is simply a class whose internal
data can't be changed once it's created. All fields
will be declared private and no externally accessible
methods will change them. That's all that's required.
It's probably a good idea to declare the fields in
the class as final, but it's not essential.
Instead of mutator methods you typically have methods
that create a new instance with some part of the data
changed.Note that "final" has two meanings:
1) a field must be set inside the constructor and nowhere else
2) a method / class cannot be inherited
You MUST forbid inheritance, or a subclass might override the methods and reenable mutability. This would have really nasty sideeffects.

Similar Messages

  • Interactive Scripting Editor (ISE) how to write a class for an action?

    Hi - I need to write a class for an action in the interactive scripting editor.  The class will create a new case (case management) and return the number.  I have created a class with a method that does this and has been fully tested but we cannot get it to work as part of an action within the ISE.  Are there any guidelines for writing classes for the ISE.  Or  has anyone done this?  Do I need a super class?  I have searched every where but can find nothing on this.  Many thanks.

    Hi Nigel,
    I am also looking for the answer to this.  Please let me know when you find a solution.
    Kind Regards,
    Andrew Griffin.

  • How to write Resourebundle class for uix page

    Our web application should support some different languages .I have took a look of "Internationalization" by help system but still not so clear.
    How to make a simple uix page supported with multiple languages at runtime ? If Resoursebundle is the answer ,how to realize it? Has anybody example codes?
    thanks
    Yong

    Yes, you should use a java ResourceBundle, and you can use the bundle data provider to bind text from a bundle. This is described in the Internationalization chapter of the UIX developers guide.
    As to how to write a resource bundle, there should be info available on the web, so try doing a search.

  • How to write a class for this?

    how do i write a different class for this? how do i implement the "a.add(b)"? it code is to test basic arithmetic operations.
              System.out.print ("Arithmetic: enter two integer numbers: ");
              Integer a = new Integer (Integer.parseInt(kbd.readLine()));
              Integer b = new Integer (Integer.parseInt(kbd.readLine()));
              System.out.println (a + "+" + b + "-" + b + "*" + a + "/" + a + "%" + b + " is: "                                    + a.add(b).sub(b).mul(a).div(a).rem(b));                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    public class arthOperation{
         add()
              sub()
         sub(){
              mul()
         mul(){
              div()
         div(){
              rem()
         rem(){
    is it write?

  • How to write a class loader to solve the class confliction in rt.jar?

    Hello guys:
    The weblogic.jar has the javax.management.*, it is conflict with rt.jar's
    I want to use JMX 1.0 to communicate with weblogic 8.1. The client should be run in the Java 1.5
    It throw
    java.io.InvalidClassException: javax.management.ObjectName; local class incompatible:
    stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
    java.io.InvalidClassException: javax.management.ObjectName; local class incompatible:
    stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359I know the reason is java 1.5 has JMX 1.2 in it.
    So how can I program a class loader to load the weblogic.jar classes in? I have tried a lot of code, but failed.
    Is there any sample here?
    I want to use the JMX 1.0 in weblogic.jar at jdk1.5 run time
    Thanks a lot,
    Qiang

    Hello guys:
    The weblogic.jar has the javax.management.*, it is conflict with rt.jar's
    I want to use JMX 1.0 to communicate with weblogic 8.1. The client should be run in the Java 1.5
    It throw
    java.io.InvalidClassException: javax.management.ObjectName; local class incompatible:
    stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
    java.io.InvalidClassException: javax.management.ObjectName; local class incompatible:
    stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359I know the reason is java 1.5 has JMX 1.2 in it.
    So how can I program a class loader to load the weblogic.jar classes in? I have tried a lot of code, but failed.
    Is there any sample here?
    I want to use the JMX 1.0 in weblogic.jar at jdk1.5 run time
    Thanks a lot,
    Qiang

  • How to write a class from se24

    Dear Abap sirs,
    I want to write an abap class using the transaction se24.
    What is the step to write a simple class..
    Thanks.

    Hi Deniz,
    Just follow the below givenlink. Using this you can create a class in SE24.
    http://help.sap.com/saphelp_nw04/helpdata/en/b3/f4b1406fecef0fe10000000a1550b0/content.htm
    <b>Reward if helpful.</b>
    Best Regards,
    Ram.

  • (I can't compile it .I don't know how to write constructor in Initial Class

    All class and main program is OK except the inital class.
    Author Class
    class Author {
    private String authorName;
    private Initials inits;
    private int numTitles = 0;
    // PRE True POST Prompts user for details
    // and RETURNS new Author constructed from details
    public Author(BufferedReader in) {
    System.out.print("\nSurname ==> ");
    authorName = Text.ReadString(in);
    inits = new Initials(in);
    numTitles = 0;
    // PRE TRUE
    // POST RETURNS String representation of Author
    public String toString() {
    String result;
    result = "NAME : " + authorName + " " + inits.toString() + "\n";
    result = result + "Number of titles is " + numTitles;
    return(result);
    // PRE TRUE
    // POST Increments number of titles
    public void incTitles() {
    numTitles++;
    Book Class
    public class Book {
    private String title;
    private Author author;
    // PRE TRUE // POST Prompts user for details
    // and RETURNS new Author constructed from details
    public Book(Author author, BufferedReader in) {
    System.out.print("\nTitle ==> ");
    title = Text.ReadString(in);
    this.author = author;
    author.incTitles();
    // PRE TRUE
    // POST RETURNS String representation of Book
    public String toString() {
    String result;
    result = "TITLE : " + title + "\n";
    result = result + "AUTHOR\n" + author.toString() + "\n";
    return(result);
    *****Initial Class (I can't compile it . I don't know how to write constructor
    class Initials
    {   private char[] inits;
         public Initials(BufferedReader in)
         System.out.print("\nInitails Testing ==> ");
         inits = Text.ReadString(in);
         public String toString()
              String result;
              result="Testing";
              return(result);
    Main program
    public class BookMain {
    static private BufferedReader in = new BufferedReader(new                                    InputStreamReader(System.in));
    public static void main(String[] args) {
    Author authorRec1, authorRec2;
    Book bookRec1, bookRec2;
    System.out.println("\n\n****** First author input");
    authorRec1 = new Author(in);
    System.out.println("\n\n****** First author output\n" + authorRec1.toString());
    System.out.println("\n\n****** Second author input");
    authorRec2 = new Author(in);
    System.out.println("\n\n****** Second author output\n" + authorRec2.toString());
         System.out.println("\n\n****** First book input");
    bookRec1 = new Book(authorRec2, in);
    System.out.println("\n\n****** First book output\n" + bookRec1.toString());
    System.out.println("\n\n****** Second book input");
    bookRec2 = new Book(authorRec2, in);
    System.out.println("\n\n****** Second book output\n" + bookRec2.toString());
    System.out.println("\n\n****** First book output\n" + bookRec1.toString());

    Change this
    class Initials {
    private char[] inits;
    to this
    class Initials {
    private String inits;
    import java.io.*;
    public class BookTest {
      static private BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      public static void main(String[] args) {
        Author authorRec1, authorRec2;
        Book bookRec1, bookRec2;
        System.out.println("\n\n****** First author input");
        authorRec1 = new Author(in);
        System.out.println("\n\n****** First author output\n" + authorRec1.toString());
        System.out.println("\n\n****** Second author input");
        authorRec2 = new Author(in);
        System.out.println("\n\n****** Second author output\n" + authorRec2.toString());
        System.out.println("\n\n****** First book input");
        bookRec1 = new Book(authorRec2, in);
        System.out.println("\n\n****** First book output\n" + bookRec1.toString());
        System.out.println("\n\n****** Second book input");
        bookRec2 = new Book(authorRec2, in);
        System.out.println("\n\n****** Second book output\n" + bookRec2.toString());
        System.out.println("\n\n****** First book output\n" + bookRec1.toString());
    class Author {
      private String authorName;
      private Initials inits;
      private int numTitles = 0;
      // PRE True POST Prompts user for details
      // and RETURNS new Author constructed from details
      public Author(BufferedReader in) {
        System.out.print("\nSurname ==> ");
        authorName = Text.ReadString(in);
        inits = new Initials(in);
        numTitles = 0;
      // PRE TRUE
      // POST RETURNS String representation of Author
      public String toString() {
        String result;
        result = "NAME : " + authorName + " " + inits.toString() + "\n";
        result = result + "Number of titles is " + numTitles;
        return(result);
      // PRE TRUE
      // POST Increments number of titles
      public void incTitles() {
        numTitles++;
    class Book {
      private String title;
      private Author author;
      // PRE TRUE // POST Prompts user for details
      // and RETURNS new Author constructed from details
      public Book(Author author, BufferedReader in) {
        System.out.print("\nTitle ==> ");
        title = Text.ReadString(in);
        this.author = author;
        author.incTitles();
      // PRE TRUE
      // POST RETURNS String representation of Book
      public String toString() {
        String result;
        result = "TITLE : " + title + "\n";
        result = result + "AUTHOR\n" + author.toString() + "\n";
        return(result);
    class Initials {
      private String inits;
      public Initials(BufferedReader in) {
        System.out.print("\nInitails Testing ==> ");
        inits = Text.ReadString(in);
      public String toString() {
        String result;
        result = inits;
        return(result);
    class Text {
      static String ReadString(BufferedReader in) {
        String text = "";
        try {
          text = in.readLine();
        catch (IOException e) {
          System.out.println(e.getMessage());
          System.exit(0);
        return text;
    }

  • How to write hasCode() & equals(0) methods in Compound Key Class

    Hi Java Helpdesk,
    I am wondering how to write the hashCode() and equals() methods that is mandatory when creating composite
    @IdClass. Below is the combination of primary @Id keys that I would like to make up in a compound key class:
    public final class PatientKey implements java.io.Serializable
        private String firstnameId;
        private String SurnameId;
        private String DateOfBirthID;
        private String Sex;
        public int hashCode()
        public boolean equals(Object otherOb)
    }The Order application in Java EE 5 Tutorial (page 841) is made up of only 2 primary keys.
    Thanks,
    Jack

    Hi,
    Thanks for your very brief response and I had a look at both EqualsBuilder and HashCodeBuilder from the URL links you have provided. These methods may improve the comparison accuracy but I was more interested on how to implement the equals() and hashCode methods when comparing 3 or more primary keys in order to make up a primary key class. Below is my first attempt to compose the PatientPK primary key class:
    1. public class PatientPK implements java.io.Serializable {
    2.
    3.     private String firstName;
    4.     private String lastName;
    5.     private String dateOfBirth;
    6.     private Char sex;
    7.
    8.     public PatientPK() {}
    9.
    10.   public PatientPK(String firstName, String lastName, Date dateOfBirth, Char sex)
    11.   {
    12.       this.firstName = firstName;
    13.       this.lastName = lastName;
    14.       this.dateOfBirth = dateOfBirth;
    15.       this.sex = sex;
    16.   }
    17.
    18.   public String getFirstName() { return this.firstName; }
    19.   public void setFirstName(String firstname) { this.firstName = firstName; }
    20.
    21.   public String getlastName() { return this.lastName; }
    22.   public void setLastname(String lastName) { this.lastName = lastName; }
    23.
    24.   public String getDateOfBirth() { return this.dateOfBirth; }
    25.   public void setDateOfBirth(String dateOfBirth) { this.dateOfBirth = dateOfBirth; }
    26.
    27.   public Char getSex() { return this.sex; }
    28.   public void setSex(String sex) { this.sex = sex; }
    29.
    30.   public boolean equals(Object obj)
    31.   {
    32.       if (obj == this) return true;
    33.       if (!(obj instanceof PatientPK)) return false;
    34.       PatientPK pk = (PatientPK) obj;
    35.       if (!firstName.equals(pk.firstName)) return false;
    36.       if (!lastName.equals(pk.lastName)) return false;
    37.       if (!dateOfBirth.equals(pk.dateOfBirth)) return false;
    38.       if (!sex.equals(pk.sex)) return false;
    39.       return true;
    40.   }
    41.
    42.   public hashCode()
    43.   {
    44.       return firstName.hashCode() + lastName.hashCode() + dateOfBirth.hashCode() + sex.hashCode();
    45.   }
    46.}Please advice whether both these equals() and hashCode() implementations are correct.
    Thanks in advance,
    Jack

  • How write a class in abap

    Hi abap experts,
    I want to write a class with abap, a simple calculator class for example,
    how can I start to write..
    The steps are what ?
    Thanks.

    Hi
    Defining class
    A class is a set of objects that have the same structure and the same behavior. A class is
    therefore like a blueprint, in accordance with which all objects in that class are created.
    The components of the class
    are defined in the definition
    part. The components are
    attributes, methods, events,
    constants, types, and
    implemented interfaces. Only
    methods are implemented in
    the implementation part.
    <b>CLASS CLASSNAME DEFINATION.
    ENDCLASS
    CLASS CLASSNAME IMPLEMATION
    ENDCLASS</b>
    The CLASS statement cannot be nested, that is, you cannot define a class within a class.
    REWARD IF USEFULL

  • How to write comments for a class

    hi
    how to write comments for a class

    I'm reeling with incredulity, and as such am unable to do anything except just post some code
    // this is a single line comment
    /* this is a multiline comment.
        it can be spread over as many lines as you
        want */Or are you asking about how to decide what the content should be?

  • How to write a wrapper class

    I am new to the concept of wrapper classes. I have a small spell checker program that I need to access via a servlet by passing a string in and getting a string out with spelling suggestions. I could really use some advice on how to write a servlet that would do such a thing. TIA

    grin1dan wrote:
    I am new to the concept of wrapper classes. I have a small spell checker program that I need to access via a servlet by passing a string in and getting a string out with spelling suggestions. I could really use some advice on how to write a servlet that would do such a thing. TIABasically, a wrapper class is a class that "wraps" another - otherwise referred to as a "HAS-A" relationship (as opposed to a sub-class, which involves an "IS-A" relationship). It does this by including an instance of the wrapped class as one of its fields.
    In many cases, wrapping is actually superior to inheritance.
    I don't know how this fits with your servlet, but - assuming that your SpellChecker is implemented as a class - all you need to do is have your servlet define a "spellchecker" field; perhaps something like:
    private final SpellChecker spellCheck = new SpellChecker();Probably worth reading up on though. Google "wrapper classes" and "forwarders".
    Winston

  • How do you write a class to return a file?

    So I've read http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html
    But I still do not know how to pass a file to a calling method of another class. How does the FileChooser class retrun the file. Please help.

    You mean something like this?
    import java.io.File;
    public class FileTest {
         public File getFile(String path) {
         //Example path =  "C:\\path\\to\\file.txt"
              return new File(path);
    }

  • How to create a class using java script..

    Hi all,
    Iam new to java script and I tried out the following program but its not working..I basically created a class just like a java prog' but Iam not getting any output or error.Iam attaching the code below.
    If I created one function inside the script and create one object its working fine but what should I do when I have a lot of function??so I created a class and put all the function and created an object but its not working..
    Do let me know what changes should I do..Iam attaching the code which I had written. or give me an example of how to create a class with couple of functions using JAVASCRIPT
    Thanks
    Avis_su
    <html>
    <head><title>JSP Page</title></head>
    <body>
    <SCRIPT language = "JavaScript">
    <!--
    //Created classes
    class book
    var title: String;
    var author:String;
    function author()
    doucument.write("Author is " +this.author);
    function tile()
    doucument.write("Title is " +this.title);
    function printall()
    var counter = 0;
    function author();
    function title();
    var chapters = Array[String];
    for(chapter in this chapters)
    counter++;
    document.write("Chapter" counter" :"+this.chapters[chapter]+"<br>");
    var thisbook = new book()
    thisbook.author = "Sivagami";
    thisbook.title = "MS in CS giude";
    thisbook.chapters = new Array[10];
    thisbook[0] = "Prepare to Excell in all ";
    thisbook[1] = "Learn to be happy";
    thisbook[2] = "Learn to be healthy mentally emotionally physically";
    thisbook[3] = "Siva and Subbu along with kidssssss will be successful in future";
    thisbook.printall();
    //-->
    </script>
    </body>
    </html>

    Run this program to get your answer:
    public class AnswerToYourPost {
    public static void main(String args[]) {
    System.out.println("TRUE/FALSE: This question
    ion belongs on a Java forum.\n"
    + "ANSWER: " + ("Javascript" == "Java"));
    }Since when do we compare objects for equality using operator == ?

  • How to write a java function for use in where clause in SQL statement

    Hi,
    Does anyone know a good tutorial on how to write and include a Java class/function into Oracle.
    I'd like to write mathematical function to use in my queries, but the resources available in PL/SQL are very limited.
    Many thanx

    Pim,
    I see you got an answer in the PL/SQL forum.
    But in case you haven't seen it, perhaps this Web page will help:
    http://www.oracle.com/technology/tech/java/jsp/index.html
    Good Luck,
    Avi.

  • EJB question: How to use abstract class in writing a session bean?

    I had written an abstract class which implements the session bean as follow:
    public abstract class LoggingSessionBean implements SessionBean {
    protected SessionContext ctx;
    protected abstract Object editRecord(Object obj) throws Exception;
    public LoggingSessionBean()
    super();
    private final String getBeforeUpdateImage(Object obj) throws Exception {
    // implement the details of extracting the backup image ...
    public void setSessionContext(SessionContext ctx)
    this.ctx = ctx;
    private final void writeThisImageToDatabase(String aStr) {
    // connect to database to write the record ...
    public final Object update(final Object obj) {
    try {
    final String aStr = getBeforeUpdateImage(obj);
    writeThisImageToDatabase(aStr);
    editRecord(obj);
    } catch (Exception e) {
    ctx.setRollbackOnly();
    This abstract class is to write the backup image to the database so that other session beans extending it only need to implement the details in editRecord(Object Obj) and they do not need to take care of the operation of making the backup image.
    However, some several questions for me are:
    1. If I write a class ScheduleSessionBean extending the above abstract class and the according 2 interfaces ScheduleSession and ScheduleSessionHome for this session bean (void update(Object obj); defined in ScheduleSession), do I still need to write the interfaces for LoggingSession and LoggingSessionHome?
    2. If I wrote the interface LoggingSession extending EJBObject where it defined the abstract methods "void update(Object obj);" and "void setSessionContext(SessionContext ctx);", that this meant I needed to write the ScheduleSession to implement the Logging Session?
    3. I used OC4J 9.0.4. How can I define the ejb-jar.xml in this case?

    Hi Maggie,
    1. do I still need to write
    the interfaces for LoggingSession and
    LoggingSessionHome?"LoggingSessionBean" can't be a session bean, because it's an abstract class. Therefore there's no point in thinking about the 'home' and 'remote' interfaces.
    2. this
    meant I needed to write the ScheduleSession to
    implement the Logging Session?Again, not really a question worth considering, since "LoggingSessionBean" can't be an EJB.
    3. I used OC4J 9.0.4. How can I define the
    ejb-jar.xml in this case?Same as you define it for any version of OC4J and for any EJB container, for that matter, since the "ejb-jar.xml" file is defined by the EJB specification.
    Let me suggest that you create a "Logging" class as a regular java class, and give your "ScheduleSessionBean" a member that is an instance of the "Logging" class.
    Alternatively, the "ScheduleSessionBean" can extend the "Logging" class and implement the "SessionBean" interface.
    Good Luck,
    Avi.

Maybe you are looking for

  • Modification in MEDRUCK for purchase order, RFQ, scheduling agreement.....

    Hi all I have requirment in which i have to modify standard script MEDRUCK for PO, RFQ, SCHEDULING AGREEMENT, AND QUANTITY CHART. I know how to modify standard layouts but after modifying layouts what to do next?? How can i use same medruck script fo

  • How to use search about THEME

    Hi, I have a document that is about car. I would like to ask whether I need to create a "THEME' for this document by myself before I can use the query 'about(car)' to search the results? If yes, please teach me how to do so. Because I thought that th

  • Can I attach two scanners each having a different twain drivers

    Can I attach two scanners each having a different twain drivers? I have a brothers all in one printer (scan print fax) it has a twain driver for the scan. I want to add a slide scanner to my system, it requires a different twain driver. Ia thi a prob

  • To add the object link at a time more than 13 line items

    Dear All, Can you help me regarding the below statment. In object link in cv01n and cv02n t-code have limitation to add the object at a time 13 line items. If you add the more than 13 line items it takes  time. If there is any provision to add the mo

  • SLIN Error

    Hi All, I am getting an error as : Syntax check warning This warning is only displayed in SLIN Assigning to "POSNR" may result in information loss the ine where i am getting error is :   LOOP AT t_temp_all ASSIGNING <fs_temp_all>.     READ TABLE t_re