Results 1 to 3 of 3
- 08-05-2007, 10:31 PM #1
Member
- Join Date
- Jul 2007
- Posts
- 40
- Rep Power
- 0
Error: cannot resolve symbol' on Person (java.lang.String, java.lang.String)
Hi, I'm sure this is really simple, I can't figure out why this is happening. First, the code.
Java Code:public abstract class BusinessObject { public Vector validationMessage; protected HashMap data = new HashMap(); public HashMap read () { return data; } }
Java Code:public abstract class Person extends BusinessObject { public Person() { } public Person (String nameString) { String newLast = ""; String newFirst = ""; if ( nameString.indexOf(",") != -1 ) { newLast = nameString.substring( 0, nameString.indexOf(",") ); newFirst = nameString.substring( nameString.indexOf(",") + 1, nameString.length() ); } else if ( nameString.indexOf(" " ) != -1 ) { newFirst = nameString.substring( 0, nameString.indexOf(" ") ); newLast = nameString.substring( nameString.indexOf(" ") + 1, nameString.length() ); } Person(newLast, newFirst); } public Person (String newNameLast, String newNameFirst) { data.put("nameLast", newNameLast); data.put("nameFirst", newNameFirst); } }
I've tried casting newLast = (String) nameString.substring(... and that doesn't work.
Thanks.
- 08-06-2007, 07:45 AM #2
The way to call another constructor is with the "this" keyword. And it must be the first line in the constructor. I don't see any clean way of doing it here. You'll have to add the two strings to the map in this single–argument constructor.
Java Code:public Person (String nameString) { this(string1, string2); ... }
Java Code:import java.util.*; public class PersonTest { public static void main(String[] args) { Person john = new Person("Lucas,John"); System.out.println("john = " + john); } } class Person extends BusinessObject { public Person() { } public Person (String newNameLast, String newNameFirst) { data.put("nameLast", newNameLast); data.put("nameFirst", newNameFirst); } public Person (String nameString) { this(Person.breakUp(nameString)); } private Person(String[] names) { this(names[0], names[1]); } private static String[] breakUp(String nameString) { String newLast = ""; String newFirst = ""; if ( nameString.indexOf(",") != -1 ) { newLast = nameString.substring( 0, nameString.indexOf(",") ); newFirst = nameString.substring( nameString.indexOf(",") + 1, nameString.length() ); } else if ( nameString.indexOf(" " ) != -1 ) { newFirst = nameString.substring( 0, nameString.indexOf(" ") ); newLast = nameString.substring( nameString.indexOf(" ") + 1, nameString.length() ); } return new String[] { newLast, newFirst }; } }
- 09-18-2008, 07:30 AM #3
Member
- Join Date
- Sep 2008
- Posts
- 9
- Rep Power
- 0
Similar Threads
-
<variable>(Java.lang.string) in <classname> cannot be applies to ()
By inksmithy in forum New To JavaReplies: 5Last Post: 01-13-2008, 10:36 PM -
Error: cannot be applied to (java.lang.String)
By carl in forum New To JavaReplies: 1Last Post: 08-05-2007, 06:33 AM -
Cast Error Caught (change) Class is really: java.lang.String
By barney in forum Advanced JavaReplies: 1Last Post: 08-02-2007, 04:07 PM -
Error: java.lang.ArrayIndexOutOfBoundsException
By fernando in forum Java 2DReplies: 1Last Post: 07-31-2007, 11:47 PM -
Can't convert java.lang.String to int.
By Albert in forum AWT / SwingReplies: 2Last Post: 07-13-2007, 05:05 PM
Bookmarks