关于导入不同包中同名类的有关问题

关于导入不同包中同名类的问题
import java.sql.Date;
import java.util.Date;

public class  Test
{
public static void main(String[] args)
{
}
}


以上代码编译会有这个样的错误:
D:\Code>javac Test.java
Test.java:2: 错误: Date的 single-type-import 已定义具有相同简名的类型
import java.util.Date;
^
1 个错误

请问大家该如何解决?只能改成如下形式?
import java.sql.*;
import java.util.*;

public class  Test
{
public static void main(String[] args)
{
}
}



------解决方案--------------------
这没有办法,否则编译器也不知道你要用哪一个啊。

当要申明引用或者实例化的时候,必须写全路径。
如:
java.util.Date d = new java.util.Date();
------解决方案--------------------
JVM中每个class类都是带着包名的

import java.sql.Date;
import java.util.Date;
同时导入两个Date,JVM无法判断你下面的new Date的Date 到底是哪个Date,就出错了

可以导入一个import java.sql.Date; 另一个直接使用 new java.util.Date 来予以区分
或者 两个Date 直接都使用 java.util.Date 和 java.sql.Date 全路径形式
------解决方案--------------------
引用:
Quote: 引用:

这没有办法,否则编译器也不知道你要用哪一个啊。

当要申明引用或者实例化的时候,必须写全路径。
如:
java.util.Date d = new java.util.Date();


我懂你的意思,但是我上面贴出的代码主方法内没有任何代码,我导入包的时候明确的指明了哪个类来自于哪个包的呀!


你有没有细想过import作用是什么?
import java.uti.Date  的作用是告诉编译器,碰到Date类的时候表示用的是java.util.Date类,
import java.sql.Date  的作用是告诉编译器,碰到Date类的时候表示用的是java.sql.Date类,
你不觉得这两行存在矛盾吗?
------解决方案--------------------
全路径,不然有歧义,编译器不能明确是哪一个类而报错。