JDK-4194542 : class name aliasing
  • Type: Enhancement
  • Component: specification
  • Sub-Component: language
  • Affected Version: 1.2.0,1.3.0,1.4.0,1.4.1,1.4.2
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic,linux,windows_2000
  • CPU: generic,x86
  • Submitted: 1998-12-03
  • Updated: 2016-04-01
  • Resolved: 2007-07-24
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  

Name: diC59631			Date: 12/03/98

Obviously the two below operations will not
compile in the same java file.

import java.util.Date ;
import java.sql.Date ;

It would be nice to alias one such as below:

import java.util.Date ;
import java.sql.Date as SqlDate ;

Date    => java.util.Date
SqlDate => java.sql.Date

This way instead of leaving out the
import java.sql.Date line and having to
fully qualify the SQL Date class for every
usage, you'd only have to use the SqlDate

This becomes a much larger issue with package
names like:
  com.fake1.western.division.plane.Fuel ;
  com.fake2.tiger.landbased.vehicle.Fuel ;

Especially when you need to use both types of
Fuel, but can only use the shortend version
for one of them at most.

"import .. as .." is not a new concept, and
I'm surprised that it wasn't incorporated into
the language specification from the beginning.
(Review ID: 43613)

An alternative syntax is proposed in RFE 4478140:

import jlang=java.lang.*;
alias jlang=java.lang;

The need for an extra keyword is not clear.

###@###.### 2005-04-17 07:20:05 GMT

4983159 is now JDK-8061419

EVALUATION 4983159 is the master CR for type aliasing.

WORK AROUND Name: diC59631 Date: 12/03/98 Always use fully qualified class names. ======================================================================

EVALUATION This is a minor bit of syntactic sugar. I am not convinced that it is very important in practice. The usual arguments about destabilizing the language, high bar for changes and creeping featurism apply. gilad.bracha@eng 1998-12-03