File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Servlets and the fly likes Ambiguous class problem Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Ambiguous class problem" Watch "Ambiguous class problem" New topic

Ambiguous class problem

James Hewitt

Joined: Jul 09, 2001
Posts: 27
I have created a servlet which enters html form input into a db2 database, and it is all working nicely with integer values. However, I want to perform some date and time calculations calculations on the form input, for which I need the Date class. To perform the sql needed for the database entry, I "import java.sql.*;". In order to perform the date calculations, I "import java.util.*;". The date calulations work fine in a servlet which does not have java.sql imported. However, when I try to put this calculation into the database entry servlet, I get
"Ambiguous class: java.util.Date and java.sql.Date"
removing "*;" means that it cannot compile the Date class (i.e. java.sql.Date does something else). How can I make it ignore java.sql.Date?
[This message has been edited by James Hewitt (edited July 10, 2001).]
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17410

Yup, it's a nuisance. You're going to have to explicitly qualify all Date declarations and casts. There are, unfortunately, some critical differences in the two different Date classes, so the compiler has to know which one you're using at any given time. Among other things, the SQL date has no time component.
Once you declare implicit class pedigrees using the import statement, Java has no prioritizing mechanism to prefer one implicit pedigree to another. It's just as well, since some extremely nasty bugs could creep in that way.

An IDE is no substitute for an Intelligent Developer.
James Hewitt

Joined: Jul 09, 2001
Posts: 27
Right, that's fixed it. Thanks very much,
I agree. Here's the link:
subject: Ambiguous class problem
It's not a secret anymore!