我有一个 Java 基类。在那个类中,我想创建一个私有类,并且我想在基类中访问该私有类的对象。我怎样才能做到这一点?
提前致谢!
您可以通过创建内部类的对象并记住它的引用来访问它。就像任何其他类的实例一样。
public enum Outer {;
private static class Nested {
private Nested() { }
}
public static Object getNested() {
return new Nested();
}
}
public class Main {
public static void main(String... args) {
System.out.println("I have an "+ Outer.newNested());
}
}
印刷
I have an Outer$Nested@3f0ef90c
一个很好的例子来自 Arrays。这将创建一个私有嵌套类的实例,该实例实现了一个使其有用的公共接口。
public static <T> List<T> asList(T... a) {
return new ArrayList<T>(a);
}
/**
* @serial include
*/
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
你是这个意思吗:
class Test {
private Inner inner = new Inner();
private class Inner {
public void foo() {}
}
// later somewhere
public void bar() {
inner.foo();
}
}
PrivateClass c = new PrivateClass();
c.getSomeObject(); //??
您可以在基类中使用上述代码;前提是私有类是基类的内部类。
class Test {
private class Inner {
public void foo() {
System.out.println("vsahdashdashd");
}
}
// later somewhere
public void bar() {
new Inner().foo();
}
}
class javaapplication9 extends Test
{
public static void main(String[] args) {
Test inner = new Test();
inner.bar();
}
you can access private member from this type.