关于导入不同包中同名类的有关问题
关于导入不同包中同名类的问题
以上代码编译会有这个样的错误:
D:\Code>javac Test.java
Test.java:2: 错误: Date的 single-type-import 已定义具有相同简名的类型
import java.util.Date;
^
1 个错误
请问大家该如何解决?只能改成如下形式?
------解决方案--------------------
这没有办法,否则编译器也不知道你要用哪一个啊。
当要申明引用或者实例化的时候,必须写全路径。
如:
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 全路径形式
------解决方案--------------------
你有没有细想过import作用是什么?
import java.uti.Date 的作用是告诉编译器,碰到Date类的时候表示用的是java.util.Date类,
import java.sql.Date 的作用是告诉编译器,碰到Date类的时候表示用的是java.sql.Date类,
你不觉得这两行存在矛盾吗?
------解决方案--------------------
全路径,不然有歧义,编译器不能明确是哪一个类而报错。
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 全路径形式
------解决方案--------------------
你有没有细想过import作用是什么?
import java.uti.Date 的作用是告诉编译器,碰到Date类的时候表示用的是java.util.Date类,
import java.sql.Date 的作用是告诉编译器,碰到Date类的时候表示用的是java.sql.Date类,
你不觉得这两行存在矛盾吗?
------解决方案--------------------
全路径,不然有歧义,编译器不能明确是哪一个类而报错。