我创建了这个游乐场,它应该让我的问题更清晰,但简而言之,我正在寻找一种方法来将对类名的引用传递给另一个类的初始值设定项,以便在编译过程的后期阶段我可以实例化该类并对其进行处理。
class Route
property action : Class
def initialize(@action)
end
def do_something
@action.new.call
end
end
class Action
def call
puts "called"
end
end
route = Route.new(Action)
但是,以上给了我can't use Object as the type of an instance variable yet, use a more specific type
我知道这可能尚未在语言中实现,但我想知道是否有另一种方法可以实现这一点,因为我不能真正按照错误建议去做并且更具体,因为我需要接受任何类。
希望有人能够为我指出正确的方向......
提前感谢!
尝试泛型:
晶体,233 字节
class Route(T)
property action : T
def initialize(@action)
end
def do_something
@action.new.call
end
end
class Action
def call
puts "called"
end
end
route = Route(Action.class).new(Action)
route.do_something
在线试用!