示例
public class Action {
public Action(ConfigurePolicy configurePolicy) {
configuration = configurePolicy;
}
public void execute() {
configuration.installPolicy();
//...
}

private ConfigurePolicy configuration;
}

public abstract class ConfigurePolicy {

public ConfigurePolicy(File custom) {
customPolicyResource = custom;
}

public void installPolicy() {
Policy.setPolicy(extractPolicy());
}

protected Policy extractPolicy() {
extractPermission(customPolicyResource);
return new Policy() {

public PermissionCollection getPermissions(CodeSource codesource) {
return collection;
}

public void refresh() {
extractPermission(customPolicyResource);
}

};
}
private PermissionCollection collection;
protected abstract PermissionCollection extractPermission(File file);
private File customPolicyResource = null;
}
解决方案
不要创建定制策略。
public class Action {
public Action() {
}
public void execute() {
//...
}

}