说我有一个像这样的代码:
import java.util.Date;
import my.own.Date;
class Test{
  public static void main(String [] args){
    // I want to choose my.own.Date here. How?
    ..
    // I want to choose util.Date here. How ?
  }
}
我应该是完全合格的班级名字吗?我能摆脱进口声明吗?在现实世界的编程中这种场景是常见的吗?
Ell*_* P. 141
您可以省略import语句并使用整个路径引用它们.例如:
java.util.Date javaDate = new java.util.Date()
my.own.Date myDate = new my.own.Date();
但我会说,使用两个具有相同名称和类似功能的类通常不是最好的主意,除非你能清楚地知道哪个是哪个.
Chi*_*hii 20
使用完全限定名称而不是导入类.
例如
//import java.util.Date; //delete this
//import my.own.Date;
class Test{
   public static void main(String [] args){
      // I want to choose my.own.Date here. How?
      my.own.Date myDate = new my.own.Date();
      // I want to choose util.Date here. How ?
      java.util.Date javaDate = new java.util.Date();
   }
}
是的,当您导入具有相同简单名称的类时,必须通过其完全限定的类名称来引用它们.我会留下import语句,因为它让其他开发人员了解文件在使用它时的内容.
java.util.Data date1 = new java.util.Date();
my.own.Date date2 = new my.own.Date();
另一种方法是子类化它:
package my.own;
public class FQNDate extends Date {
}
然后在包含java.util.Date的包中导入my.own.FQNDate.
如果您有自己的日期类,您应该将它与内置的 Date 类区分开来。即你为什么要创建自己的。像 ImmutableDate 或 BetterDate 或 NanoDate 之类的东西,甚至 MyDate 都会表明你为什么有自己的日期类。在这种情况下,它们将具有唯一的名称。
您可以使用 import 导入其中之一。对于所有其他类似的类,您需要指定完全限定的类名。否则你会得到编译错误。
例如:
import java.util.Date;
class Test{
  public static void main(String [] args){
    // your own date
    my.own.Date myOwndate ;
    // util.Date
    Date utilDate;
  }
}
小智 5
如果您确实想要或需要使用两个不同包中的相同类名,您有两种选择:
1-选择一个在导入中使用,并使用另一个的完全限定类名:
import my.own.Date;
class Test{
     public static void main(String[] args){
        // I want to choose my.own.Date here. How?
        //Answer:
        Date ownDate = new Date();
        // I want to choose util.Date here. How ?
        //Answer:
        java.util.Date utilDate = new java.util.Date();
     }
}
2-始终使用完全限定的类名:
//no Date import
class Test{
  public static void main(String[] args){
    // I want to choose my.own.Date here. How?
    //Answer:
     my.own.Date ownDate = new my.own.Date();
    // I want to choose util.Date here. How ?
    //Answer:
     java.util.Date utilDate = new java.util.Date();
  }
}
| 归档时间: | 
 | 
| 查看次数: | 89173 次 | 
| 最近记录: |