Apache 配置添加对象而不是字符串
Apache Configuration add object instead of String
我的 apache 配置有问题。是否可以添加对象而不是它们的字符串表示形式?
例如,我想保存整个 'SiteNode' 而不是 "toString()" 变体:
public void persistSiteTree(Context context, Configuration config) {
List<SiteNode> nodes = Model.getSingleton().getSession().getNodesInContextFromSiteTree(context);
config.addProperty(CONFIG_PROPERTY_AUTHORISATION, nodes);
}
public void loadSiteTree(Context context, Configuration config) {
List<Object> nodes = new ArrayList<>();
nodes = config.getList(CONFIG_PROPERTY_AUTHORISATION, nodes);
if(nodes != null && !nodes.isEmpty()) {
// Load in sites tree
SiteNode node = (SiteNode) nodes.get(0); // Gives error as String cannot be cast to "SiteNode"
}
}
但是当我调用 'loadSiteTree' 时,它告诉我 String cannot be case to SiteNode。 Apache 是否可以保存对象?
有 getList()
的重载版本支持到特定目标的数据类型转换 class。
<T> List<T> getList(Class<T> cls, String key, List<T> defaultValue)
Get a list of typed objects associated with the given configuration
key returning the specified default value if the key doesn't map to an
existing object.
像这样的东西应该适合你:
List<SiteNode> nodes = config.getList(SiteNode.class,CONFIG_PROPERTY_AUTHORISATION, nodes);
我的 apache 配置有问题。是否可以添加对象而不是它们的字符串表示形式?
例如,我想保存整个 'SiteNode' 而不是 "toString()" 变体:
public void persistSiteTree(Context context, Configuration config) {
List<SiteNode> nodes = Model.getSingleton().getSession().getNodesInContextFromSiteTree(context);
config.addProperty(CONFIG_PROPERTY_AUTHORISATION, nodes);
}
public void loadSiteTree(Context context, Configuration config) {
List<Object> nodes = new ArrayList<>();
nodes = config.getList(CONFIG_PROPERTY_AUTHORISATION, nodes);
if(nodes != null && !nodes.isEmpty()) {
// Load in sites tree
SiteNode node = (SiteNode) nodes.get(0); // Gives error as String cannot be cast to "SiteNode"
}
}
但是当我调用 'loadSiteTree' 时,它告诉我 String cannot be case to SiteNode。 Apache 是否可以保存对象?
有 getList()
的重载版本支持到特定目标的数据类型转换 class。
<T> List<T> getList(Class<T> cls, String key, List<T> defaultValue)
Get a list of typed objects associated with the given configuration key returning the specified default value if the key doesn't map to an existing object.
像这样的东西应该适合你:
List<SiteNode> nodes = config.getList(SiteNode.class,CONFIG_PROPERTY_AUTHORISATION, nodes);