草庐IT

reflections

全部标签

java - 来自 Maven Mojo 的思考

我想使用GoogleReflections从我的Maven插件编译的项目中扫描类。但是默认情况下插件看不到项目的编译类。来自Maven3documentation我阅读:Pluginsthatneedtoloadclassesfromthecompile/runtime/testclasspathofaprojectneedtocreateacustomURLClassLoaderincombinationwiththemojoannotation@requiresDependencyResolution.至少可以说这有点含糊。基本上我需要一个类加载器的引用来加载已编译的项目类。我如何

java - NoClassDefFoundError : org/hibernate/annotations/common/reflection/MetadataProvider

我在pom.xml中定义了依赖org.hibernatehibernate-commons-annotations3.3.0.ga我在C:/User/.m2/repository/org/hibernate/hibernate-commons-annotations/3.3.0.ga中有上面的jar我在hibernate.cfg.xml中配置了session工厂和数据源,并尝试在我的主要方法中构建配置:Configurationconfiguration=newConfiguration().configure();StandardServiceRegistryBuilderbuild

java - 检查 java.lang.reflect.Field 类型是否为字节数组

我没有做太多反射(reflection),所以这个问题可能很明显。例如我有一个类:publicclassDocument{privateStringsomeStr;privatebyte[]contents;//Gettersandsetters}我正在尝试检查字段contents是否是字节数组的一个实例。我尝试了什么:Classclazz=Document.class;Field[]fields=clazz.getDeclaredFields();for(Fieldfield:fields){if(field.getType().isArray()){Objectarray=fiel

Java 等于(): to reflect or not to reflect

这个问题特别与为具有大量字段的对象覆盖equals()方法有关。首先,让我说这个大对象不能在不违反OO原则的情况下分解成多个组件,所以告诉我“没有类应该有超过x个字段”无济于事。继续前进,当我忘记检查其中一个字段是否相等时,问题就出现了。因此,我的equals方法是不正确的。然后我想到使用反射:--coderemovedbecauseitwastoodistracting--这篇文章的目的不一定是重构代码(这甚至不是我正在使用的代码),而是为了了解这是否是个好主意。优点:如果添加了一个新字段,它会自动包含该方法比30个if语句简洁得多缺点:如果添加了一个新字段,它会自动包含,有时这是不

java - sun.reflect.Reflection.getCallerClass 替代方案

来自HowdoIfindthecallerofamethodusingstacktraceorreflection?(因为我没有足够的声誉在那里发表评论)由于sun.reflect.Reflection.getCallerClass在jdk8中已经被移除,有什么替代方案?如何使用sun.misc.SharedSecretsJavaLangAccessaccess=SharedSecrets.getJavaLangAccess();Throwablethrowable=newThrowable();intdepth=access.getStackTraceDepth(throwable)

java - java.lang.reflect.Method.equals(Object obj) 中的名称比较

下面是Java7中java.lang.reflect.Method.equals(Objectobj)的实现:/***Comparesthis{@codeMethod}againstthespecifiedobject.Returns*trueiftheobjectsarethesame.Two{@codeMethods}arethesameif*theyweredeclaredbythesameclassandhavethesamename*andformalparametertypesandreturntype.*/publicbooleanequals(Objectobj){if

java - 在 Java 中可以访问方法 "reflectively"的源代码吗?

恐怕答案是否定的,但也许你们中的一个让我感到惊讶。谢谢。编辑1:我知道这个问题没有多大意义,但我认为这一点已被理解,遗憾的是,答案是否定的。无论如何,我更改了问题的标题,为“反射(reflection)”一词添加了引号,为了以防万一,我会尝试更好地解释我的意图。我有一个类型的实例,它是具有一些已知方法的某个抽象类型的子类。我想在运行时获得一个字符串,其中包含实例类型中此类方法之一的实际实现的源代码。我认为值得指出的是实例的实际类型可能是一个匿名内部类....另外,源代码的“反编译”版本就足够了。我想获取源码的方法,大多数时候只有一行....谢谢。 最佳答案

java - 反射 IllegalArgumentException 原因

更新-使问题更清楚。通过反射调用方法时出现ClassCastException的可能原因是什么?在尝试通过反射调用方法时,我在应用程序中得到了以下堆栈跟踪信息。java.lang.IllegalArgumentException:java.lang.ClassCastException@21fea1fvatsun.reflect.GeneratedMethodAccessor332.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav

ruby-on-rails - 获取 rails 路由以反射(reflect)数据库列表

我目前有一个通过列表数据库进行搜索的页面。单击选择后,View链接到该列表的显示页面:当前路由为的显示页面:get'listings/:listing_id',to:'listings#show',as:'listing'这会给我地址localhost3000/listing/612983618(arbitraryid)我想要做的是获取路由以在路由中显示来自数据库的信息,以用于SEO目的:localhost3000/listing/[address]/[booking_id]当我尝试适应get'listings/:listing_id',to:'listings#show',as:'l

c++ - OpenGL:GL_TEXTURE_CUBE_MAP 和 GL_REFLECTION_MAP

我目前正在使用OpenGL开发一个项目。每次我尝试引用GL_TEXTURE_CUBE_MAP和GL_REFLECTION_MAP时,它们在我看来都是未定义的。我已经包含了gl.h、glu.h和glut.h,但它们仍然显示为未定义。有什么建议吗? 最佳答案 OpenGL-1.1之后的所有内容都不是Windows操作系统ABI(二进制接口(interface))规范和GLXOpenGL-1.2规范的一部分(Linux即将获得修订的OpenGLABI)任何超出该功能的内容都必须在运行时通过扩展加载机制加载,即使它是核心功能。使用GLEW最