Understanding Comparable and the compareTo( ) method

I have a Contact object which lists a person's information for a "phone book" program.
I am trying to sort the Contact objects in a Vector by way of their last name fields.
I am having a hell of a time trying to use this compareTo( ) method.
I'm really struggling with understanding how to go about making the method work with a comparison. Most of the examples which I find compare "numbers' and not strings which make it more difficult to understand.
I have implimented the comparable Interface at the start of my class. To sort my Vector, I'm attempting to use the compareTo( ) method to determine which Last name field has the lower value. I keep going back and forth working through the error messages I receive and I'm just stumped trying to figure out how to get this thing to work. Can someone please point out the mistakes without writing too much code? I don't want someone to do the work for me. Here is the code:
import java.io.*;
import java.util.*;
class PhoneBook implements Comparable{
     private static Vector v = new Vector();
     private static Iterator iter = v.iterator();
     private static int num, index;
     private static Contact firstContact, secondContact, temp;  //"static" to be referenced from main
     public static void main(String arg[])throws Exception {
          Contact c;
          String str;
          BufferedReader br = new BufferedReader(
      new InputStreamReader(
           new FileInputStream(
                                       new File("contacts.txt"))));
          while((str = br.readLine()) != null){
           v.add(c= new Contact(br.readLine()));
           num = v.size();
           for(int i=0; i < num; i++){
      firstContact = (Contact)v.elementAt(i);
           if(v.elementAt(++i) == null)
                break;
           else
                secondContact = (Contact)v.elementAt(++i);
           index = compareTo(firstContact);
           if(index == 1){
                   temp = (Contact)v.elementAt(i);
                   v.setElementAt(v.elementAt(++i), i);
                   v.setElementAt(temp, ++i);
          public static int compareTo(Object person){
     int x = ((Contact)person).getLName().compareTo(secondContact.getLName());
     return x;
}yet still I get the following compiler error:
PhoneBook.java:4: compareTo(java.lang.Object) in PhoneBook cannot implement compareTo(java.lang.Object) in java.lang.Comparable; compareTo(java.lang.Object) and compareTo(java.lang.Object) are static
class PhoneBook implements Comparable{
^
1 error

You are pretty close here except for one incorrect basic assumption. Your compiler error is because you are trying to implement compareTo() with a static method. However, this is irrelevant because it is not the PhoneBook class that should implement Comparable, but the Contact class.
The idea is that other functions can call the compareTo() method on an instance of Contact and pass a reference to a second instance. Based on the result, the relative sort order of the two objects can be determined.
e.g.Contact c1 = new Contact("Smith", "John");
Contact c2 = new Contact("Jones", "Alan");
int x = c1.compareTo(c2);In your example, you can implement compareTo() to use the corresponding method in String. For compatibility, you should also implement equals().
public class Contact implements Comparable {
   public int compareTo(Object otherContact) {
       Contact otherC = (Contact) otherContact;  // could throw exception
       return getLName().compareTo(otherC.getLName());
   public boolean equals(Object otherContact) {
       Contact otherC = (Contact) otherContact;  // could throw exception
       return getLName().equals(otherC.getLName());
} // end of class Contact I haven't compiled or tested the above code nor does it deal with exceptions (e.g. otherContact is not an instance of Contact) - I'll leave that to you! You'll also need to change your PhoneBook sort routine to invoke firstContact.compareTo(secondContact)
FYI - I understand that this is an academic exercise and so you may need to code the sort yourself, but once Contact implements Comparable, you could sort the Vector using standard Java methods. Check out java.util.Collections - there is a method that will perform your sort in one line of code.
Good Luck.

Similar Messages

  • Hey guys, i get the message "Your Apple ID was deaktivated" I have changed my password and the pay method too but nothing happens

    Hey guys, i get the message "Your Apple ID was deaktivated" I have changed my password and the pay method too but nothing happens

    After resetting your password have you tried logging out of your account on your phone by tapping on your id in Settings > iTunes & App Store and then logging back in to see if that 'refreshes' the account on it and if it then works ?
    If that doesn't fix it then you might need to contact iTunes Support : http://www.apple.com/support/itunes/contact/ - click on Contact iTunes Store Support on the right-hand side of the page

  • Re: fortecgi and the POST method

    DAVID A. TRIGO wrote:
    Has anyone successfully used the forte CGI program using the POST
    method from a form? I've had success with PUT, but fortecgi seems to
    have a problem when the HTML form uses POST.
    I'm running Netscape Enterprise Server 3.0 on Solaris 2.5
    thanks,
    David Trigo
    Allmerica FinancialDavid --
    Can you be a little more specific about what you mean by "fortecgi
    seems to have a problem when the HTML form uses POST"? What kind of error
    messages do you get? What do they say?
    For instance, the following code works fine:
    tag code in "somepage.htm" ...
    <form method="POST" action="$$FORTE.ExecURL">
    <input type="hidden" name="ServiceName" value="SomeService">
    <input type="hidden" name="TemplateName" value="next_page.htm">
    <input type="hidden" name="HiddenParam" value="dog">
    <div align="center"><center><p>
    Type some junk here: <input type="text" name="junkTxt"
    size="20">
    </p></center></div>
    <div align="center"><center><p>
    <input type="submit" value="Submit" name="submitBtn">
    <input type="reset" value="Reset" name="resetBtn">
    </p></center></div>
    </form>
    in "next_page.htm" ...
    <?forte execute TestThis ResultSet="StuffRS">
    <table border="1" width="43%">
    <tr>
    <td width="100%"><p align="center"><strong>STUFF</strong></td>
    </tr>
    <tr>
    <td width="100%"><p align="center">$$StuffRS.firstWord</td>
    </tr>
    <tr>
    <td width="100%"><p align="center">$$StuffRS.secondWord</td>
    </tr>
    </table>
    up in Forte World, in your HandleTag method ...
    firstItem:TextData=new;
    secondItem:TextData=new;
    if Tag.Compare('TestThis', ignorecase=TRUE) = 0 then
    firstItem = request.FindNameValue('junkTxt');
    secondItem = request.FindNameValue('HiddenParam');
    rset.Add('firstWord',firstItem);
    rset.Add('secondWord',seconditem);
    The end result should be a table with 2 entries -- whatever you typed in
    the text box and the hidden string "dog"
    Dr. Daniel Marcus
    Sage IT Partners, Inc.
    353 Sacramento St., Suite 1360
    San Francisco, CA 94111
    415.392.7243 x357
    [email protected]

    This works:
    <FORM METHOD="post" ACTION="http://localhost:9704/analytics/saw.dll?" ENCTYPE="application/x-www-form-urlencoded">
    <input type=hidden name=Cmd value=Answers>
    <input type=hidden name=nqUser value=Administrator>
    <input type=hidden name=nqPassword value=Administrator>
    <input type=submit value="Answers">
    </FORM>

  • I dont know what to do!!! I pulled out my headphones and then saw that my sound was not working correctly. I was horrified to find a piece of the headphone never came out. I have heard how much it costs to repair and the other methods are not working.

    Please help, i am so scared that i will never get my laptop back the way it was.

    "the other methods aren't working"
    Well, what other methods have you tried that didn't work?  Frankly, your post reads as a hoax, but I have some extra time on my hands, and an idea.  Make an appointment with the Apple Genius at your local Apple store.  You could also bring your MBP to an AASP.  Regardless, either one should be able to remove the bottom cover, and use a plastic thingy (dang, what is that tool called?) to push out the offending bit.

  • XmlBean usage and the clone() method.

    I'm trying to use the XmlBean class as the superclass for all our business objects and we have an issue with the usage of the clone method.
    Basically our business objects all throw the CloneNotSupportedException (as per Object.clone() signature) while XmlBean.clone() does not throw it. Introducing XmlBean into the hierarchy will cause quite a bit of effort to change clone() signatures for a lot of classes. So, we were wondering if there is any alternative to subclassing XmlBean while at the same time using the efficient caching that it gives us. I guess I'm looking for a "composition" approach rathe than an "inheritance" approach that might work.
    Has anyone faced this issue and is there any other workaround?
    Thanks,
    --Das                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    The reason that I asked is that the exception is "old baggage" from a design flaw in the original JDK 1.0 .. it is a checked exception that can never happen on an object that implements Cloneable, so if you don't throw it, and you implement Cloneable, then it won't be thrown on clone().
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters

  • The new keyword and the newInstance method

    Hi friends
    Can any one tell me the difference between creating an instance of a class by the new keyword and creating an instance of a class by the newInstance method in java.
    Also how do I decide which method to use for a given condition?

    Hi friends
    Can any one tell me the difference between creating an
    instance of a class by the new keyword and creating an
    instance of a class by the newInstance method in java.
    Also how do I decide which method to use for a given
    condition?Hello,
    in the todays java technology newsletter there was a interesting and useful task for the newInstance-method.
    You can compile any class at runtime and start this program with newInstance.
    If you want to develop your own IDE it would be very useful ;)
    import java.awt.*;
       import java.awt.event.*;
       import javax.swing.*;
       import java.io.*;
       import java.lang.reflect.*;
       public class RunIt extends JFrame {
         JPanel contentPane;
         JScrollPane jScrollPane1 = new JScrollPane();
         JTextArea source = new JTextArea();
         JPanel jPanel1 = new JPanel();
         JLabel classNameLabel = new JLabel("Class Name");
         GridLayout gridLayout1 = new GridLayout(2,1);
         JTextField className = new JTextField();
            JButton compile = new JButton("Go");
      Font boldFont = new java.awt.Font("SansSerif", 1, 11);
         public RunIt() {
           super("Editor");
           setDefaultCloseOperation(EXIT_ON_CLOSE);
           contentPane = (JPanel) this.getContentPane();
           this.setSize(400, 300);
           classNameLabel.setFont(boldFont);
           jPanel1.setLayout(gridLayout1);
           compile.setFont(boldFont);
           compile.setForeground(Color.black);
           compile.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
               try {
                 doCompile();
               } catch (Exception ex) {
                 System.err.println(
                       "Error during save/compile: " + ex);
                 ex.printStackTrace();
           contentPane.add(jScrollPane1, BorderLayout.CENTER);
           contentPane.add(jPanel1, BorderLayout.NORTH);
           jPanel1.add(classNameLabel);
           jPanel1.add(className);
           jScrollPane1.getViewport().add(source);
           contentPane.add(compile, BorderLayout.SOUTH);
         public static void main(String[] args) {
           Frame frame = new RunIt();
           // Center screen
           Dimension screenSize =
             Toolkit.getDefaultToolkit().getScreenSize();
           Dimension frameSize = frame.getSize();
           if (frameSize.height > screenSize.height) {
             frameSize.height = screenSize.height;
           if (frameSize.width > screenSize.width) {
             frameSize.width = screenSize.width;
           frame.setLocation(
             (screenSize.width - frameSize.width) / 2,
             (screenSize.height - frameSize.height) / 2);
           frame.show();
         private void doCompile() throws Exception {
           // write source to file
           String sourceFile = className.getText() + ".java";
           FileWriter fw = new FileWriter(sourceFile);
           fw.write(source.getText());
           fw.close();
           // compile it
           int compileReturnCode =
             com.sun.tools.javac.Main.compile(
                 new String[] {sourceFile});
           if (compileReturnCode == 0) {
             // run it
             Object objectParameters[] = {new String[]{}};
             Class classParameters[] =
                         {objectParameters[0].getClass()};
             Class aClass =
                       Class.forName(className.getText());
             Object instance = aClass.newInstance();
             Method theMethod = aClass.getDeclaredMethod(
                                  "main", classParameters);
             theMethod.invoke(instance, objectParameters);
       }regards,
    Tim

  • Time consumption by the stub and the service methods

    There is a performance issue with the web services which is reported recently. The Service method i.e. in my case AccountBalanceService.initFactory is taking 380 milliseconds while the stub method is taking i.e. in my case availableBalanceServiceStub.availableBalance is taking 2 seconds. QA people reported about why it is taking more time while the service method is quick. What might be the cause here? For me, it's seems that it might be the networking issues, marshalling and unmarshalling of the soap files and the JVM settings on the machines.

    Hello Pranali,
    the time spent by a user (which is the difference between login and logout) is <b>not</b> stored anywhere.
    STAD and/or ST03 will not help here as only the time of the login could be determined from the workload statistics. The time of the logout cannot be retrieved from the workload data (as this action doesn't contain any "logout specific" information).
    As a workaround you can use the Security Audit Log (sm19) to protocol the logon and logoff of the users. Based on this information you should be able to calculate the time a user was logged on.
    About the number of transactions:
    the workload analysis only uses dialog steps. As the number how often a transaction was called doesn't contain any useful information this information is <b>not</b> collected.
    E.g. you can call su01 to create 100 user accounts or call ten times su01 to create one user. The workload creating 100 users will be higher than the workload of the remaining ten transactions...
    So the figures 1 transaction vs. 10 transactions doesn't provide any useful information.
    Regards, Michael

  • Trying to understand blocksize and the correct sizing requirements..

    I'm getting the following error after migrating a cube from a 9.3 environment to an 11 environment while running a calc script - which by the way works fine in 9.3 with identical cache settings.
    Error: 1012704 Dynamic Calc processor cannot lock more than [2] ESM blocks during the calculation, please increase CalcLockBlock setting and then retry(a small data cache setting could also cause this problem, please check the data cache size setting).
    When applying the following formula to our environment I get 122.84 Allocateable blocks, if my math is correct. The error is stating "[2] ESM" blocks so I must be doing something wrong?
    Data Cache in K
    ______________ = Number of blocks that can be allocated
    Block Size in K
    block size     1651392/1024=1612.6875
    Cache     198107
    # of allocateable blocks     122.8427702
    The settings from our config file are as follows:
    CALCLOCKBLOCKHIGH 5500
    CALCLOCKBLOCKDEFAULT 3500
    CALCLOCKBLOCKLOW 100
    CalcCacheHigh 199229440
    CalcCacheDefault 104857600
    CalcCacheLow 52428800
    So what am I missing here, why the [2] ESM error? Is that a bogus error for a problem with the calc script I'm trying to run?
    Thanks for your help.
    Adam,

    OK, so even though I "thought" the setting survived a server restart I wen ahead and stopped and started the database and the settings applied and all seems to be good.
    Thanks for the feedback.

  • Scanner and the reset() method

    After reading all the way through a scanner, is there a way to return back to the front/beginning of it?

    No. Note that the reset() method of Scanner doesn't rewind you to the beginning of a file.
    Simply create another Scanner with the same file.
    edit: What is your Scanner's input? I was assuming it was from a File.

  • I desperately would like to update Firefox to version 10 from version 9 but each time I try, I am stuck with FF10 checking addons for comparability and the Welcome page opening every time I start the browser.

    Windows 7 64 bit
    I desperately would like to update Firefox to version 10 from version 9 but each time I try, I am stuck with FF10 checking addons for compatability and the Welcome page opening every time I start the browser. I continue to have to revert to version 9 to resolve this issue.

    Sorry to be a while getting back! Tried all of that with no sucess so this AM, bit the bullet and deleted the FF folder from programs and downloaded and installed FF 10.01. Still was plagued with the same problem. Went into the appdata folder and there were two sessionstore.js files. Deleted them both, restarted the browser and no compatibility check for add-ons was done at start up and the extra tab for Welcome to FF was no longer opening Everything seems to be working as it should and I did not loose any of my settings.. Thank you for trying to help and I hope my solution helps anyone else who might experience this in the future. Here's hoping the next update goes smoother!

  • HT201263 Ipod is disabled and the normal method wont work

    I started the prosess like it said on the website on how to restore it. To hold down the middle busson intill the connect to Itunes picyure came up. Then plug it in and press restore. It was downloading the updates then its stopped and said that I could not access the Ipod without putting in the password. Which I cant! So what can I do to stop my Ipod being disabled?

    Place the iOS device in Recovery Mode and then connect to your computer and restore via iTunes. The iPod will be erased.
    iOS: Wrong passcode results in red disabled screen
    If recovery mode does not work try DFU mode.
    How to put iPod touch / iPhone into DFU mode « Karthik's scribblings

  • Form and the get method

    I am using a simple form with one dropdown menu and one
    submit button.
    The form uses the get mothod to send the menu id to another
    page.
    The form must also get another value and send it along with
    the selected menu value.
    The missing value will come from the "prod_id" from my
    recordset, but I do not want to show that value to the user, of
    course, so I do not know how to incorporate it into the form.
    My second page relies on $_GET['prod_id'] and
    $_GET['menu_value']
    The menu_value is in the url, but not the prod_id, as
    explained.
    Thanks for any advice.

    On Fri, 20 Feb 2009 19:19:28 +0000 (UTC), "bregent"
    <[email protected]> wrote:
    > That's what I was going to suggest, with the caveat that
    if this is sensitive
    >information you are trying to hide, it will be visible in
    source view. The fact
    >that you did not want it in the querystring leads my to
    believe this may be the
    >case.
    That's true.
    Gary

  • Implementing the CompareTo(Object T) method of interface Comparable T

    Hi,
    I cannot figure out how to write implementation to compare two objects for the CompareTo method.
    I have an Employee class and a Manager class that inherits Employee and in the main method i want to sort the objects so that i can use the method binarySearch(Object[] a, Object key), originally i sorted each object in order of their salaries but i now need to be able to distinguish between a Manager object and an Employee object.

    demo:
    class Base implements Comparable<Base> {
        private String baseField;
        @Override public int compareTo(Base that) {
            return this.baseField.compareTo(that.baseField);
    class Derived extends Base {
        private String derivedField;
        @Override public int compareTo(Base that) {
            int result = super.compareTo(that);
            if (result == 0 && that instanceof Derived) {
                Derived thatThang = (Derived) that;
                result = this.derivedField.compareTo(thatThang.derivedField);
            return result;
    }Base objects are ordered by baseField. (I assume all fields will be non-null, for simplicity.) Between Derived objects with equal baseField, I order them further by derivedField.
    edit. I should mention that there are headaches that usually follow when you compare objects of different types. Suppose you have three objects:
    obj1, a Derived object with baseField = "b", derivedField = "x"
    obj2, a Base object with baseField = "b"
    obj3, a Derived object with baseField = "b", derivedField = "y"
    according to the compareTo methods, obj1 and obj2 are equal, and as well, obj2 and obj3 are equal, but obj1 and obj3 are not equal, so we do not have transitivity. ;-(

  • CompareTo method to compare files

    I have to compare each line from two files and say whether the lines are different or not. I don't exactly understand how to use the compareTo method in this type of situation. I'd appreciate any help.
    import java.util.*;
    import java.io.*;
    import java.net.*;
    import java.util.StringTokenizer;
    public class FileComparer
    public static void main (String[] args)
    String line, file="http://condor.depaul.edu/~jpetlick/extra/224/display.txt";
    String line2, file2="http://condor.depaul.edu/~jpetlick/extra/224/display2.txt";
    int lineCount = 0, wordCount = 0, lineCounter = 0;
    try
    URL URLfile = new URL (file);
    InputStream input = URLfile.openStream();
    BufferedReader buffer = new BufferedReader(new InputStreamReader(input));
    line = buffer.readLine();
    URL URLfile2 = new URL (file2);
    InputStream input2 = URLfile2.openStream();
    BufferedReader buffer2 = new BufferedReader(new InputStreamReader(input2));
    line2 = buffer2.readLine();
    while (line != null)
    if (line != line2)
    System.out.println("at Line " + lineCounter);
    System.out.println("DISPLAY.TXT " + line);
    System.out.println("DISPLAY2.TXT " + line2);
    lineCounter++;
    StringTokenizer st = new StringTokenizer(line);
    wordCount += st.countTokens();
    lineCount++;
    line = buffer.readLine();
    line2 = buffer2.readLine();
    System.out.println("\nA total of " + lineCounter + " were different between DISPLAY.TXT and DISPLAY2.TXT");
    System.out.println("DISPLAY.TXT contains:");
    System.out.println("\nTotal number of lines: " + lineCount);
    System.out.println("Total number of words: " + wordCount);
    catch (FileNotFoundException exception)
    System.out.println("The file " + file + " was not found.");
    catch (IOException exception)
    System.out.println(exception);
    }

    Change the lineif (line != line2)to if (!line.equals( line2))since strings are immutable in java "line != line2" will alwais evaluate to false in your case.
    equals actually compares the contents of the string.
    Kurt.

  • Problems accessing my compareTo method

    Could you any one help me on this please.
    I have 3 classes :
    1- "Test class" that creates the object (works fine) and redefines compareTo method
    2. "XListeChainee" that manage my linked list :
    - insert a new node (problems) in order
    3. "Test" which is the classe containing the main method. here is the code
    class Test {
    public static void test(){
    XListeChainee liste = new XListeChainee();
    liste.insererOrdonne(new TestClass("A"));
    liste.insererOrdonne(new TestClass("B"));
    liste.insererOrdonne(new TestClass("C"));
    liste.insererOrdonne(new TestClass("E"));
    liste.insererOrdonne(new TestClass("D"));
    // ------- here is the main method
    public static void main(String[] args){//main
    Test obj = new Test();/
    obj.test();
    }//end main
    here is the class TestClass with the compareTo method
    class TestClass implements Comparable{
    String data;
    TestClass(String data)
    this.data = data;
    }//end constructor
    public String toString(){
    return (data);
    public int compareTo(Object o) {
    TestClass n = (TestClass)o;
    int compData = data.compareTo(n.data);
    return compData ;
    }//end TestClass
    and this is my XListeChainee class (some of the code)
    public class XListeChainee
    private Noeud premierNoeud; //reference to first node
    private Noeud dernierNoeud; //reference to last node
    boolean estVide(){
    return premierNoeud == null;
    // ------ Insert an object: in order
    void insererOrdonne(Object element) {        
    // Creates a new node with the new element
    Noeud unNoeud;
    unNoeud = new Noeud();
    unNoeud.majElement(element) ;
    if ( premierNoeud == null ) { // if first node = null
    premierNoeud = unNoeud; // new node become first
    //------------------------- problem------------------------------
    //---- Compare the element in the first node with the element : Doesn't work
    // ---- System says that cannot resolve symbol - compareTo
    // This line says: if (firstNode.element.compareTo(element)>=0)
    else if ( premierNoeud.obtenirElement().compareTo(element) >= 0 ) {
    // Le nouvel element est < que le 1er element, alors il est inser� a la tete
    unNoeud.majSuivant(premierNoeud);
    premierNoeud = unNoeud;
    else {
    // Chercher la position du nouvel element dans la liste
    Noeud parcourir; // un noeud pour parcourir la liste
    Noeud prec; //un noeud toujour avant celui qui parcours la liste
    parcourir = premierNoeud.obtenirSuivant();
    prec = premierNoeud;
    while (parcourir != null && parcourir.obtenirElement().compareTo(element) < 0) {
    previous = parcourir;
    parcours = parcourir.obtenirSuivant();
    unNoeud.majSuivant(parcourir); // Insert newNode after previous.
    prec.majSuivant(unNoeud);
    Could you help me doing this please? I' sorry about some variable and method's names but I'm writing a program in french

    [snip]
    public int compareTo(Object o) {
    TestClass n = (TestClass)o;
    int compData = data.compareTo(n.data);
    return compData ;
    }//end TestClass[snip]
    : if (firstNode.element.compareTo(element)>=0)
    else if (
    e if (
    premierNoeud.obtenirElement().compareTo(element) >=0
    ) {What's up with the >=0 business in your method call?
    Based on what your method expects (an Object) I
    I don't know what you're trying to accomplish there?
    Also, please use code tags.Nevermind, after staring at it I can see the closing paranthesis now.

Maybe you are looking for

  • How do I restore the "close tab" button to the END of the tab bar, WITHOUT USING AN ADDON

    Up until FF31, I used to have the following setting configured which moved the little 'X' button that closed tabs off of the tabs themselvs and onto the far right of the tab bar. browser.tabs.closeButtons; User Set; Integer; 3 No, this no longer work

  • Error while running test report

    I have just installed oracle application server 10g 10.1.2. on redhat linus AS4 on dell 64 bit machine. forms servlet works fine but when i use the following url to access test report It gives a very famous error error "REP-51002: Bind to Reports Ser

  • Adobe Acrobat 9 PDF Writer replaces default printer

    I have tried to look this up but no one seems to have a definitive answer for this problem. First let me explain my organization's set-up and what the problem is. I work for a high school with several PC's running a mix of Windows 7 and Windows XP in

  • Dec 31st Birthday's not showing up!!

    I've tried posting this before and nobody has answered me. I'm curious if anyone else has posted all day events on Dec 31. I've got 3 relatives with December 31st birthdays and they don't show up on my published calendar. I would like to send my rela

  • How to directly call business object class from backing bean class

    I woul like to call business object class directly from the backing bean class and implement methods in BO. If possible can anyone give an example code. Thanks in advance