返回信息流今天看书的时候有点地方不太理解,就去翻了翻源码,于是看到这样一段神奇的代码?就是中间那个private构造方法的参数,这种写法是什么意思?
private static Void checkCreateClassLoader() {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkCreateClassLoader();
}
return null;
}
private ClassLoader(Void unused, ClassLoader parent) {
this.parent = parent;
if (ParallelLoaders.isRegistered(this.getClass())) {
parallelLockMap = new ConcurrentHashMap<>();
package2certs = new ConcurrentHashMap<>();
domains =
Collections.synchronizedSet(new HashSet<ProtectionDomain>());
assertionLock = new Object();
} else {
// no finer-grained lock; lock on the classloader instance
parallelLockMap = null;
package2certs = new Hashtable<>();
domains = new HashSet<>();
assertionLock = this;
}
}
/**
* Creates a new class loader using the specified parent class loader for
* delegation.
*
* <p> If there is a security manager, its {@link
* SecurityManager#checkCreateClassLoader()
* <tt>checkCreateClassLoader</tt>} method is invoked. This may result in
* a security exception. </p>
*
* @param parent
* The parent class loader
*
* @throws SecurityException
* If a security manager exists and its
* <tt>checkCreateClassLoader</tt> method doesn't allow creation
* of a new class loader.
*
* @since 1.2
*/
protected ClassLoader(ClassLoader parent) {
this(checkCreateClassLoader(), parent);
}
这是一条镜像帖。来源:北邮人论坛 / java / #56699同步于 2017/7/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
请问这是什么操作
cc19931002
2017/7/5镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
?没懂,主要他中间那个构造方法的参数列表里面有个 Void unused,这是什么东西
【 在 dss886 的大作中提到: 】
判断类加载器是否支持并发?
就是一个占位符吧……因为ClassLoader还有一个构造方法是protected ClassLoader(ClassLoader var1),不用占位符两个方法签名就一样了
【 在 cc19931002 的大作中提到: 】
: ?没懂,主要他中间那个构造方法的参数列表里面有个 Void unused,这是什么东西
: 判断类加载器是否支持并发?
参考:https://stackoverflow.com/questions/14030337/whats-the-difference-between-void-and-no-parameter
【 在 cc19931002 的大作中提到: 】
: ?没懂,主要他中间那个构造方法的参数列表里面有个 Void unused,这是什么东西
: 判断类加载器是否支持并发?
soga,我去看看,thank you
【 在 dss886 的大作中提到: 】
: 参考:https://stackoverflow.com/questions/14030337/whats-the-difference-between-void-and-no-parameter
: