我所拥有的是两个包emp和p5。我有一个文件,包含两个类,其中一个是公共的,另一个是默认的。
package emp;
public class Employee{
public void display(){
System.out.println("from DebarredEmply");
}
}
class DebarredEmployee{
public void display(){
System.out.println("from DebarredEmply");
}
}
我想要的是在另一个包中的类中创建DebarredEmployee的对象。
package p5;
import emp.DebarredEmployee;
class Test{
public static void main(String[] args){
DebarredEmployee dEmp = new DebarredEmployee();
dEmp.display();
}
}
我尝试了上述方法,但它给了我错误
error: DebarredEmployee is not public in emp; cannot be accessed from outside package
那么如何创建我想要的类的对象呢?
PS:
我知道默认值在包外是不可访问的,如果我将类公开并将其移动到另一个文件,它将起作用,我想这样做而不创建新文件并将访问修饰符保持为默认值。 - 适合某些草率的命名惯例。
答案 0 :(得分:1)
您可以将DebarredEmployee
类作为静态内部类放入Employee
类。像这样:
public class Employee{
public void display(){
System.out.println("from DebarredEmply");
}
public static class DebarredEmployee{
public void display(){
System.out.println("from DebarredEmply");
}
}
}
在p5
包中,您可以使用import static
:
import static emp.Employee.DebarredEmployee;
class Test{
public static void main(String[] args){
DebarredEmployee dEmp = new DebarredEmployee();
dEmp.display();
}
}
答案 1 :(得分:-1)
将DebarredEmployee dEmp;
变量装饰移到main
之外。如果您不希望dEmp
静态,您可以制作一个使用dEmp
并使用main
方法调用它的新方法。
编辑:这是有效的,因为无法在方法