草庐IT

reflect.ValueOf

全部标签

java - 什么可能导致 java.lang.reflect.InvocationTargetException?

好吧,我试图理解并阅读可能导致它的原因,但我就是无法理解:我的代码中有这个:try{..m.invoke(testObject);..}catch(AssertionErrore){...}catch(Exceptione){..}事情是,当它试图调用某个方法时,它会抛出InvocationTargetException而不是其他一些预期的异常(特别是ArrayIndexOutOfBoundsException)。因为我实际上知道调用了什么方法,所以我直接进入了这个方法代码,并为应该抛出ArrayIndexOutOfBoundsException的行添加了一个try-catchbloc

ruby-on-rails - Rails Date.today 反射(reflect)了服务器部署日期

我有一个Rails应用程序,它显示事件事件(今天或之后的事件)。scope:active,where("event_date>=?",Date.today).order("event_dateASC")在本地一切顺利。但是在生产服务器上,查询正在使用部署日期进行比较。这是日志SELECT"events".*FROM"events"WHERE"events"."school_id"=32AND(roster_idin(45)orroster_idISNULL)AND(event_date>='2014-09-18')按事件日期升序排序但是如果在生产环境中从控制台检查,它显示正确1.9.3

ruby - 反射(reflection)嵌套命名空间

我正在尝试查找嵌套命名空间的根类/模块。这是找到它的最有效方法吗?我不喜欢我正在转换为字符串。看起来应该有一个更优雅的解决方案。classFooclassBardefparentObject.const_getself.class.to_s.split(/::/).firstendendendFoo::Bar.new.parent#=>Foo 最佳答案 有Module.nestingmoduleFoomoduleBarmoduleBazpModule.nesting#=>[Foo::Bar::Baz,Foo::Bar,Foo]pMo

ruby-on-rails - 在迁移中创建未反射(reflect)在模式中的序列

我有一个应用程序需要一个序列出现在数据库中。我有一个执行以下操作的迁移:classCreateSequence这不会修改schema.rb,因此会破坏rakedb:setup。如何强制架构包含序列?注意:运行rakedb:migrate后序列存在。 最佳答案 Rails迁移,因为它们的目标是表和字段的模式,而不是完整的数据库表示,包括存储过程、函数、种子数据。当您运行rakedb:setup时,这将创建数据库、加载架构,然后加载种子数据。一些供您考虑的解​​决方案:选择1:创建您自己的rake任务,独立于Rails迁移上/下执行这些

reflection - 检查结构是否实现给定接口(interface)

我需要遍历结构类型的所有字段并检查它们是否实现了给定的接口(interface)。typeModelinterface{...}funcHasModels(mModel){s:=reflect.ValueOf(m).Elem()t:=s.Type()modelType:=reflect.TypeOf((*Model)(nil)).Elem()fori:=0;i%s\n",i,f.Name,f.Type,f.Type.Implements(modelType))}}然后,如果调用HasModels具有这样的结构:typeCompanystruct{...}typeUserstruct{.

reflection - 检查结构是否实现给定接口(interface)

我需要遍历结构类型的所有字段并检查它们是否实现了给定的接口(interface)。typeModelinterface{...}funcHasModels(mModel){s:=reflect.ValueOf(m).Elem()t:=s.Type()modelType:=reflect.TypeOf((*Model)(nil)).Elem()fori:=0;i%s\n",i,f.Name,f.Type,f.Type.Implements(modelType))}}然后,如果调用HasModels具有这样的结构:typeCompanystruct{...}typeUserstruct{.

reflection - 我可以在 Go 中使用反射创建一个新函数吗?

我有个想法,在Go中使用接口(interface)来定义RPC风格的接口(interface)。所以对于给定的服务,我可能会创建一个这样的接口(interface):typeMyServiceinterface{Login(username,passwordstring)(sessionIdint,errerror)HelloWorld(sessionIdint)(histring,errerror)}我想做的是使用反射来实现该接口(interface),将方法调用转换为RPC调用,编码输入参数,并将结果解码回方法的输出。我知道如果我可以获得输入参数的[]interface{},我可以

reflection - 我可以在 Go 中使用反射创建一个新函数吗?

我有个想法,在Go中使用接口(interface)来定义RPC风格的接口(interface)。所以对于给定的服务,我可能会创建一个这样的接口(interface):typeMyServiceinterface{Login(username,passwordstring)(sessionIdint,errerror)HelloWorld(sessionIdint)(histring,errerror)}我想做的是使用反射来实现该接口(interface),将方法调用转换为RPC调用,编码输入参数,并将结果解码回方法的输出。我知道如果我可以获得输入参数的[]interface{},我可以

reflection - 如何在运行时发现所有包类型?

据我所知(见here和here)reflectpackage中没有类型发现机制,它期望您已经拥有要检查的类型或值的实例。是否有任何其他方法可以发现正在运行的go包中的所有导出类型(尤其是结构)?这是我希望拥有的东西(但它不存在):import"time"import"fmt"funcmain(){vartypes[]reflect.Typetypes=reflect.DiscoverTypes(time)fmt.Println(types)}最终目标是能够发现包中满足特定条件的所有结构,然后能够实例化这些结构的新实例。顺便说一句,识别类型的注册函数不是我的用例的有效方法。无论你是否认为

reflection - 如何在运行时发现所有包类型?

据我所知(见here和here)reflectpackage中没有类型发现机制,它期望您已经拥有要检查的类型或值的实例。是否有任何其他方法可以发现正在运行的go包中的所有导出类型(尤其是结构)?这是我希望拥有的东西(但它不存在):import"time"import"fmt"funcmain(){vartypes[]reflect.Typetypes=reflect.DiscoverTypes(time)fmt.Println(types)}最终目标是能够发现包中满足特定条件的所有结构,然后能够实例化这些结构的新实例。顺便说一句,识别类型的注册函数不是我的用例的有效方法。无论你是否认为