我有一个文件,其中包含交易代理活动的输出。例如:
222666:org.powertac.common.Order::171875::new::21::165482::-35.74395569719625::35.0
222666:org.powertac.common.Order::171876::new::21::165893::-35.74395569719625::35.0
该类Order
定义为:
public Order (Broker broker, Timeslot timeslot,
double mWh, Double limitPrice)
{
super();
this.broker = broker;
this.timeslot = timeslot;
this.mWh = mWh;
this.limitPrice = limitPrice;
}
所以从我的文件中:
<id>:<package_name>::<execution_id>::<new object>::<args_list>
但是,有一些示例,例如:
222665:org.powertac.genco.Genco::21::setCurrentCapacity::35.74395569719625
222665:org.powertac.genco.Genco::21::setInOperation::true
new
因此,我必须setCurrentCapacity
使用参数调用该方法,而不是创建一个对象35.7439..
。我的目标是创建一个
Map<Integer, Object> map = new Map<Integer, Object>();
就是这样,Map
介于Integer id
和之间Object
。因此,如果我想再次重现代理活动,我只需处理Map
对象。我想知道实现我的目标的最佳方法是什么。例如,我是否必须实际创建Genco
对象并将其转换为,Object
然后再存储到Map
? 如何设置函数调用?我的意思是,我如何创建Genco
对象并告诉它调用?另外,这是什么意思,我该如何处理以下值:setInOperation
Map
300:org.powertac.du.DefaultBrokerService$LocalBroker::1::new::default broker
300:org.powertac.du.DefaultBrokerService$LocalBroker::1::setLocal::true
用$
符号?