为什么使用包java.nio.file.Path而不导入它?
我有两门课:为什么使用包java.nio.file.Path而不导入它?,java,package,java.nio.file,Java,Package,Java.nio.file,我有两门课: public class ScriptTests { private final java.nio.file.Path test_file; // ... } public class TestD { public static void main(String args[]) { java.nio.file.Path test_file= Paths.get(args[0]); // .... } } 这些类用于测试我编写的代码。我的问题是
public class ScriptTests {
private final java.nio.file.Path test_file;
// ...
}
public class TestD {
public static void main(String args[]) {
java.nio.file.Path test_file= Paths.get(args[0]);
// ....
}
}
这些类用于测试我编写的代码。我的问题是为什么他们总是用这个软件包的全名?为什么不在开始时简单地使用import
,然后像在所有其他软件包中一样使用更简单的名称呢
例如:importjava.io.*代码>
我这么问是因为它看起来很奇怪。我想这可能是有原因的 当需要使用不同包的两个类时,可以使用包的整个类声明,例如,如果需要在一个方法中使用两个类Date。如果您不需要使用两个或多个具有相同名称但具有不同包的类,那么最好使用导入使代码更具可读性
示例
package com.stackoverflow.question;
import java.sql.Timestamp;
public class Solution {
public static void main(String args[]) {
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
java.util.Date utilDate = new java.util.Date();
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
System.out.println(sqlDate);
System.out.println(utilDate);
System.out.println(timestamp);
}
}
注意:导入一个特定包的所有类(“导入java.sql.*”)是一种不好的做法,只需导入您需要的类即可。我不理解您的问题。您可以使用“import java.nio.file.Path;import java.nio.file.Path;”并删除所有包的声明和编译的所有内容但是为什么在测试代码的文件中,他们每次都使用全名,我知道他们可以使用import,但为什么不使用,有一个原因,我相信你会问的人谁写的代码。可能他们试图避免类名冲突(即,还有一些其他包中使用的路径
类,未显示在代码中-不太可能,但可能)。或者他们应该使用导入,就像你预期的那样。对不起,我们无法理解编写代码的人的想法。我问是否有已知的原因!没有人让你读心术,只是说没有已知的原因:)