首页 > 解决方案 > 从 main() 访问静态内部类中的私有类的方法

问题描述

我在私有类中有一个私有方法,它位于内部static类中。我想从方法访问该main()方法。我创建了一个愚蠢的例子来给它一个清晰的理解。

public class Thanos{
   public static void main(){
       //get Gamora here
   }
   static class Avengers{
       private class StarLord{
           private void getGamora(){
               System.out.println("Access me to get a soul for a soul.");
           }
       }
   }
}

下面是我如何进入Avengers类,但StarLord类不允许我访问getGamora方法。

//inside main() method
Avengers avngrs= new Thanos.Avengers();
//here create instance of StarLord class

Thanos类的唯一目的是获取getGamora方法的灵魂字符串作为输出。

输出

Access me to get a soul for a soul.

谢谢!!!

标签: java

解决方案


您可以StarLord使用avengers.new StarLord()如下方式构造 a:

public class Thanos{
    public static void main(String[] args){
        Avengers avengers = new Thanos.Avengers();
        Avengers.StarLord starLord = avengers.new StarLord();
        starLord.getGamora();
    }
    static class Avengers{
        private class StarLord{
            private void getGamora(){
                System.out.println("Access me to get a soul for a soul.");
            }
        }
    }
}

推荐阅读