如何访问位于私有(private)类 Model
中的方法getBMW()
,而不创建类 Car
和类 Model
公开?
class MyCar {
public Car getCar() {
return new Car();
}
private class Car {
public Model getModel() {
return new Model();
}
private class Model {
public String getBMW() {
//...
}
//...
}
}
}
class TestCode {
public static void main(String arg[]) {
MyCar car = new MyCar();
car.getCar(). // <= no method getModel()
}
}
最佳答案
您甚至无法从公共(public)方法返回私有(private)Car
,但您可以创建一个接口(interface):
public interface BmwModel {
String getBMW();
}
public interface BmwModelProvider {
BmwModel getModel();
}
class MyCar {
public BmwModelProvider getCar() {
return new Car();
}
private class Car implements BmwModelProvider {
@Override
public BmwModel getModel() {
return new Model();
}
private class Model implemements BmwModel {
@Override
public String getBMW() {
//...
}
//...
}
}
}
关于java - 嵌套类中的类可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47414459/