public class A extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class B{
private void start(){
。。。。。。。。。。
}
}
主类A想调用B类里面的start()方法怎么调用?B是外部类
用反射
public static void main(String[] args) throws Exception {
A a = new A();
a.startB();
}
public static class A {
public void startB() throws Exception {
Method method;
method = B.class.getDeclaredMethod("start");
method.setAccessible(true);
method.invoke(new B());
}
}
public static class B {
private void start() {
System.out.println("B is started.");
}
}
new B.start();
类的私有方法是不能被其他类调用到的,类的私有方法只能在自己的方法中调用,这就是类的封装的特点,规定了访问权限。
使用反射 你想怎么用就怎么用
直接用反射就可以。
另外,为什么会有这个需求呢、
调不到私有方法的,可以用反射实现
先声明这个类,下面在调用就行