如何在赋予通用参数时指定应实现某些特定创建方法的方式?因为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
以拥有JANITZA_DEVICE,SUNSPEC_DEVICE,ABB_DEVICE等。将通用参数指定为MEASURING_POINT_MODBUS_DEVICE似乎是没有道理的,但是我该怎么办?指定我希望创建方法为devices: LINKED_SET[G]
希望描述足以理解,重构我认为这个问题是链接的-> 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
被推迟。因此,它不能用作MEASURING_POINT_MODBUS_DEVICE
的实际参数。如果允许,CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
将如何创建一个延迟类的实例?
问题中提到了一种可能的解决方案-提供有效的课程。另一种解决方案是将具有形式约束的形式泛型参数添加到CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
,并将其用于SMA_INVERTER_MANAGER_CSV
的实际泛型。