public class DynamicClassProvider extends Object implements IClassProvider
| 限定符和类型 | 类和说明 |
|---|---|
protected class |
DynamicClassProvider.ProviderClassLoader |
IClassProvider.EventListener, IClassProvider.State| 限定符和类型 | 字段和说明 |
|---|---|
protected org.slf4j.Logger |
_log |
protected boolean |
autoReload
是否自动重载变更代码
|
protected ClassSource |
classSource
类资源
|
protected IClassProvider.State |
state |
| 构造器和说明 |
|---|
DynamicClassProvider(ClassSource classSource) |
DynamicClassProvider(ClassSource classSource,
boolean autoReload) |
DynamicClassProvider(ClassSource classSource,
boolean autoReload,
ClassLoader parentClassLoader) |
DynamicClassProvider(ClassSource classSource,
ClassLoader parentClassLoader) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addListener(IClassProvider.EventListener listener) |
ClassLoader |
getClassLoader() |
Set<Class<?>> |
getLoadedClasses() |
IClassProvider.State |
getState() |
boolean |
isAutoReload() |
protected void |
loadClasses()
加载所有的脚本类
|
protected void |
onClassSourceScaned() |
protected void |
onLoaded() |
void |
reload()
重载class
if(getClassLoader()==getClass().getClassLoader())
注意,调用此方法的实例的classLoader不能等于当前的classLoader,
否则会造成classLoader内存泄漏
|
void |
removeListener(IClassProvider.EventListener listener) |
void |
setAutoReload(boolean autoReload) |
protected final org.slf4j.Logger _log
protected final ClassSource classSource
protected volatile boolean autoReload
protected volatile IClassProvider.State state
public DynamicClassProvider(ClassSource classSource)
public DynamicClassProvider(ClassSource classSource, boolean autoReload)
public DynamicClassProvider(ClassSource classSource, ClassLoader parentClassLoader)
public DynamicClassProvider(ClassSource classSource, boolean autoReload, ClassLoader parentClassLoader)
protected void onClassSourceScaned()
public final IClassProvider.State getState()
getState 在接口中 IClassProviderpublic ClassLoader getClassLoader()
getClassLoader 在接口中 IClassProviderpublic Set<Class<?>> getLoadedClasses()
getLoadedClasses 在接口中 IClassProviderpublic final void reload()
IClassProviderreload 在接口中 IClassProviderpublic final void addListener(IClassProvider.EventListener listener)
addListener 在接口中 IClassProviderpublic final void removeListener(IClassProvider.EventListener listener)
removeListener 在接口中 IClassProviderpublic boolean isAutoReload()
isAutoReload 在接口中 IClassProviderpublic void setAutoReload(boolean autoReload)
setAutoReload 在接口中 IClassProviderprotected void onLoaded()
Copyright © 2020. All rights reserved.