在提供通用参数时应如何指定应实现某些特定的创建方法?因为LIST[G -> create make end]
不起作用:-(
在我的特定情况下,
* SMA_INVERTER_MANAGER_CSV
从CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
继承了devices: LINKED_SET[G]
和G -> MEASURING_POINT_MODBUS_DEVICE create make_from_file_path end
的设备列表。
我希望SMA_INVERTER_MANAGER_CSV
类能够加入devices: LINKED_SET[G]
,使其能够拥有JANITZA_DEVICE,SUNSPEC_DEVICE,ABB_DEVICE等。将通用参数指定为MEASURING_POINT_MODBUS_DEVICE似乎是有道理的,但是如何指定我希望创建方法为make_from_file_path
希望描述足以理解,重构,我认为这个问题是联系在一起的-> explicit creation type not conforming to type of target
我目前发现唯一可行的解决方法是
class
SMA_INVERTER_MANAGER_CSV
inherit
CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV[SUNSPEC_DEVICE]
create
make
end
但我希望成为
class
SMA_INVERTER_MANAGER_CSV
inherit
CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV[MEASURING_POINT_MODBUS_DEVICE]
create
make
end
由于MEASURING_POINT_MODBUS_DEVICE
通用参数未将make_from_file_path
指定为创建过程,因此会产生一致性问题
答案 0 :(得分:1)
不仅存在一致性问题。 MEASURING_POINT_MODBUS_DEVICE
被推迟。因此,它不能用作CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
的实际参数。如果允许,CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
将如何创建一个延迟类的实例?
问题中提到了一种可能的解决方案-提供有效的课程。另一种解决方案是向具有约束条件的SMA_INVERTER_MANAGER_CSV
添加一个正式的泛型参数,并将其用于CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
的实际泛型。