问题描述
- java clone 方法 调用问题
-
public static Class<?> getProxyClass(ClassLoader loader,Class<?>... interfaces) throws IllegalArgumentException { final Class<?>[] intfs = interfaces.clone(); final SecurityManager sm = System.getSecurityManager(); if (sm != null) { checkProxyAccess(Reflection.getCallerClass(), loader, intfs); } return getProxyClass0(loader, intfs); }
clone 方法在Object中是protected的,以上代码来自反射包下Proxy类.为什么interfaces.clone();可以调用clone() ??
//因为他是个数组.
解决方案
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
解决方案二:
传递的对象是个数组, 数组是有clone方法的。
时间: 2024-09-04 17:48:18