在给出泛型参数时如何指定它应该实现一些特定的创建方法?
How to specify when giving a generic parameter that it should implement some specific creation method?
在给一个泛型参数时如何指定它应该实现一些特定的创建方法?因为 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
class 能够进入 devices: LINKED_SET[G]
能够拥有 JANITZA_DEVICE、SUNSPEC_DEVICE、[=42] =], 等等。将通用参数设置为 MEASURING_POINT_MODBUS_DEVICE 似乎是没有意义的,但是我如何指定我希望创建方法是 make_from_file_path
希望描述足以理解,重构我认为这个问题是有联系的 ->
目前我发现目前唯一的解决方法是
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
将如何创建延迟 class 的实例?
问题中提到了一种可能的解决方案——提供有效的 class。另一种解决方案是使用相应的约束向 SMA_INVERTER_MANAGER_CSV
添加一个正式的泛型参数,并将其用于 CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
.
的实际泛型。
在给一个泛型参数时如何指定它应该实现一些特定的创建方法?因为 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
class 能够进入 devices: LINKED_SET[G]
能够拥有 JANITZA_DEVICE、SUNSPEC_DEVICE、[=42] =], 等等。将通用参数设置为 MEASURING_POINT_MODBUS_DEVICE 似乎是没有意义的,但是我如何指定我希望创建方法是 make_from_file_path
希望描述足以理解,重构我认为这个问题是有联系的 ->
目前我发现目前唯一的解决方法是
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
将如何创建延迟 class 的实例?
问题中提到了一种可能的解决方案——提供有效的 class。另一种解决方案是使用相应的约束向 SMA_INVERTER_MANAGER_CSV
添加一个正式的泛型参数,并将其用于 CONSUMPTION_SECTOR_MODBUS_DEVICE_CSV
.