我不明白为什么它是如此。
attached {G}
可行为什么我必须指定{G}
???
class
SIT_HANDLER[G -> DB_ENTITY create default_create, make_from_db_service, make_from_json end]
feature --
some_feature
do
if attached {G} l_rest_request.calling_entity as l_calling_entity then
db_service.set_item_prototype (l_calling_entity) -- Complains here!!!!!!!!!!!!
db_service.load_with_relationships (l_rest_request)
...
end
end -- class
class
REST_REQUEST
feature -- Access
calling_entity: detachable RELATED_DB_ENTITY -- RELATED_DB_ENTITY inherits DB_ENTITY
...
end -- class
class
DB_SERVICE [G -> DB_ENTITY create default_create, make_from_db_service, make_from_json end]
feature -- Status setting
item_prototype: G
set_item_prototype (v: like item_prototype)
do
item_prototype := v
ensure
item_prototype = v
end
...
end -- class
答案 0 :(得分:1)
类型RELATED_DB_ENTITY
与类型G
不符。
这是一个示例。假设有一个类FOO
继承自DB_ENTITY
,并具有所有必需的创建过程。 FOO
和RELATED_DB_ENTITY
不一致。对于类型SIT_HANDLER [FOO]
,特征db_service.set_item_prototype
的自变量具有类型FOO
,而表达式l_rest_request.calling_entity
的类型为RELATED_DB_ENTITY
。不允许将类型RELATED_DB_ENTITY
的表达式分配给类型FOO
的实体。