//class TestA
package Abc;public class TestA
{
public void Pri()
{
System.out.println("TestA.Pri!!");
}
}
//class TestBpackage Bb; //放在包Bb中
import Abc.*; //可以用“*”导入Abc包中的类public class TestB
{
public static void main(String[] args)
{
TestA ta=new TestA();
ta.Pri();
System.out.println("TestB.main!");
}
public void Pri()
{
System.out.println("TestB.Pri!!");
}
}
很简单的代码,问题:如果不把TestB类放在一个自定义的包中,就会出现找不到TestA类的问题TestB.java:8: 无法访问 TestA
错误的类文件: .\TestA.java
文件不包含类 TestA
请删除该文件或确保该文件位于正确的类路径子目录中。
TestA ta=new TestA();
^
1 错误但如果用import Abc.TestA;导入包的话就可以找到TestA类。但如果把TestB类放到一个自定义的包中,就可用“*”也就是import Abc.*;导入TestA类为什么默认的包不能用“*”导入类?
package Abc;public class TestA
{
public void Pri()
{
System.out.println("TestA.Pri!!");
}
}
//class TestBpackage Bb; //放在包Bb中
import Abc.*; //可以用“*”导入Abc包中的类public class TestB
{
public static void main(String[] args)
{
TestA ta=new TestA();
ta.Pri();
System.out.println("TestB.main!");
}
public void Pri()
{
System.out.println("TestB.Pri!!");
}
}
很简单的代码,问题:如果不把TestB类放在一个自定义的包中,就会出现找不到TestA类的问题TestB.java:8: 无法访问 TestA
错误的类文件: .\TestA.java
文件不包含类 TestA
请删除该文件或确保该文件位于正确的类路径子目录中。
TestA ta=new TestA();
^
1 错误但如果用import Abc.TestA;导入包的话就可以找到TestA类。但如果把TestB类放到一个自定义的包中,就可用“*”也就是import Abc.*;导入TestA类为什么默认的包不能用“*”导入类?
是没错的.不过,建议你以后不要把包名第一个字母用大写.
修改为:
import Abc.TestA;
试试
或许你的Bb包下边有TestA
修改为:
import Abc.TestA;
试试
这个当然可以,我不是说明了吗?还有一个问题,如果把TestA的源文件(.java)和TestA.class放到一起,就是Abc文件夹下面,用import Abc.*;引用就可以,编译就可以通过。。
是没错的.不过,建议你以后不要把包名第一个字母用大写
说得对啊
!
能运行的话,也就可能是在你的Bb包下边有TestA
问题我找到了
如果在TestB同目录下,不管是有TestA.java还是有TestA.class。如果用abc.TestA.*引用的话,编译都通不过。大家可以测试一下,只是有些不明白,编译的时候TestA的源文件为什么对编译TestB还有这么大的影像?