草庐IT

Reflection

全部标签

java - 来自类定义的 GUI

是否有可以通过查看类或方法签名来构建简单GUI的库?例如:classMyMath{publicstaticdoublesqrt(doubled){//impl}}到因此,当单击按钮时,将调用该方法并显示结果。你知道Java或其他语言中类似的例子吗?谢谢 最佳答案 我编写了一个非常基本的示例,它展示了如何使用几行反射代码和少量swing来实现这一点。也许init()应该返回在GridLayout中找到的使用方法的数量,然后它会更动态。importjava.awt.GridLayout;importjava.awt.event.Acti

java - 通用继承和调用 GetMethod().getReturnType()

在我当前的项目中,我有如下建模的类。在某些时候,getReturnTypeForGetId()类的方法在类A和B上被调用。使用A调用方法会按预期返回Integer,但B会返回Serializable。我在这里错过了什么?我是被一些令人发指的删除事情咬伤了,还是只是错过了某种通用的上下文破坏?编辑:向B添加一个覆盖的getId()方法解决了这个问题,但我仍然想了解我我遇到了。importjava.io.Serializable;publicclassWeirdTester{staticinterfaceIdentifiable{TgetId();voidsetId(finalTid);}

java - 如何列出 Java 方法/函数中的所有局部变量?

我的主要问题:我知道您通常可以使用反射输出类字段,即使您不知道变量名称、类型,甚至不知道有多少。但是,假设我不知道变量名称是什么,是否有一种方法可以列出当前函数或当前范围内的所有变量?换句话说:intx=5;inty=42;//somemorecode//NowIwanttoprintlnxandy,butassumingIcannotuse"x"or"y".我也很乐意回答这个问题:假设我可以存储所有变量的名称,这有帮助吗?例如:SetvarNames=newHashSet();intx=5;varNames.add("x");inty=42;varNames.add("y");//s

java - 泛型和( super ?)类型标记可以帮助构建类型安全的新闻聚合器吗?

我有这个基本的News界面interfaceNews{StringgetHeader();StringgetText();}和像SportsNews这样的具体类和FinancialNews提供特定方法,如getStockPrice(),getSport()等等。新闻旨在发送给interfaceSubscriber{voidonNews(Nnews);}问题是如何注册和维护订阅。我尝试的第一种方法是使用中央Aggregator,在Class之间保留map对象和Set>,但很快这种方法就显露出行不通了。这是所需的APIpublicclassAggregator{publicvoidsubs

java - 断言失败 : unsafe symbol DeveloperApi in runtime reflection universe

我在Java8程序中运行以下行SparkConfsparkConf=newSparkConf();sparkConf.setAppName("testJob");sparkConf.setMaster("spark://blahblah:7077");SparkSessionsparkSession=SparkSession.builder().config(sparkConf).getOrCreate();SQLContextsqlContext=newSQLContext(sparkSession);Datasetds=sqlContext.sql("SHOWTABLES");我得

java - 如何获取对象的所有字段和属性,这些字段和属性使用特定注释进行注释?

如何在不遍历所有其字段或属性描述符的情况下获取对象(非类)的所有字段和属性?我的目标是避免对每个显然甚至没有注释的字段或属性进行不必要的迭代,例如getClass()或不是实例字段或成员变量的类的任何字段。或者迭代是唯一的出路吗?没有其他更好的方法吗? 最佳答案 您可以使用reflectionspackage那为你做了所有的工作。项目描述:Reflectionsscansyourclasspath,indexesthemetadata,allowsyoutoqueryitonruntimeandmaysaveandcollectth

java - 类 Class 的实例

我有几个关于类Class实例的问题1)我是否理解正确,对于Dog类,只有一个类Class的实例。换句话说,给定以下几行Dogdog1=newDog();Dogdog2=newDog();Classdog1Class=dog1.getClass();Classdog2Class=dog2.getClass();ClassdogClass=Dog.class;Class类只有一个实例-Class.如果您将这些引用与==进行比较,您会发现它们是同一个对象。真正的问题是,getClass和static.class在主方法的一次执行期间是否总是返回相同的实例?2)这些实例究竟是什么时候创建的?

Java 反射与代码生成

今天我想知道为什么像`Hibernate这样的框架在编译/应用程序启动期间使用反射而不是代码生成(例如使用像BCEL或ASM这样的库)。是否由于历史原因(编写Hibernate时没有这样的库可以动态生成字节码)现在每个人都使用这种方法?我认为使用生成代码的方法会比使用反射的方法更快。 最佳答案 是的,Hibernate可能会从代码生成中受益,尽管利润可能没有您想象的那么大。首先,Reflection在底层使用字节码生成,而且速度并不太慢。您不能仅使用字节码生成来做某些事情。例如。反射允许您访问私有(private)字段并调用私有(p

java - Mockito 抛出 UnfinishedVerificationException(可能与本地方法调用有关)

我在运行测试用例时出现以下异常:org.mockito.exceptions.misusing.UnfinishedVerificationException:Missingmethodcallforverify(mock)here:->atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)Exampleofcorrectverification:verify(mock).doSomething()Also,thiserrormightshowupbecauseyouverifyeitherof:final/privat

java - 如何找到 Java8 方法引用的目标?

我想捕获对模拟对象的调用publicinterfaceService{publicStringstringify(Objecto);}service=mockery.mock(Service.class);mockery.allowing(service::stringify).with(42).will(()->"42");所以里面allowing我有一个Function是否有任何反射魔法可以让我从方法引用创建的函数中找到服务?publicWithClauseallowing(Functionf){ObjectmyServiceBackAgain=findTargetOf(funct