java私有方法被外部调用问题

我有一个A类,一个B类,B中有两个方法,m1和m2,其中m1调用m2,不想new,想在A中调用B的m1方法,该如何去办?
大致下面这个意思

 pulic class A {
     B.m1();
 }

 pulic class B {

     public static void m1(){
            m2();
     }

         private static void m2(){
     }
 }

上面是行不通的,提示我要把m2也公有静态了,但是我不想那样,
单例的话,我懂,除了单例,还有没有别的方法

7个回答

public void getM1(){
m1();
}
然后调用getM1();
希望对你有用

私有方法就是不可以被外部调用,
你要是想被外部调用,就要用public,
这是java安全性定义的。

你要不尝试一下给m1 的调用放在方法中呢??好像在类里面直接调用方法是错误的,他会默认为申明方法,但是又没有返回值,所以编译出错。图片说明

感觉单例应该是最好的办法了,想不出来还有别的思路,java的特性要求在静态方法里调用的方法必须也是静态,因此静态方法通过类名调用应该是行不通的

反射,setAccessible(true)?

private修饰符是在类本身内部访问的,别的类不能访问,既然知道单例模式,就应该知道private修饰的属性和方法不能在其他类里访问。

java的安全性良好,设置访问修饰符就是为了提高安全性的,private只能在本类当中调用,例外静态方法也只能调用静态的方法。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问