问题标签 [java-annotations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使用 Java 推断自定义注释中的信息
我创建了一个名为 CrudSearchable 的自定义注释,并在那里定义了一些属性。但是,我分配的属性已经从 bean 中可见。有没有一种方法可以获取这些值而无需手动重新定义它们?
其中,attribute 是属性名称,parentClass 是使用注解的类字面量,映射类是嵌套类对象(如果适用)。
java - 注释可以限制java中类字段的字符吗?
我正在使用 java 1.8、Spring Boot 和 MongoDb 将一些数据存储在数据库中以了解 mongoDb
我想通过注释来限制类字段的字符我试图用hibernate-validator控制它:
但是当我将它插入到 mongodb 中时,代码如下:
当 Panteraaaaaa 的长度大于 7 并且 Heavy Metalllllllllllllllll 相同时,它确实可以正常工作
我附上了与我的 pom.xml 对应的以下代码
要实现这个问题,可以通过注解来控制java中字段的字符长度吗?或者我需要做一个方法来控制它
java - apache spark:在实例化新执行程序时运行初始化脚本的最佳方法是什么
我正在使用自定义 dropwizard 指标源和报告器。当我直接调用指标而不是通过指标注释时,一切都很好。
在下面的代码中,对 testTimer 的调用无需使用 Spark Metrics 注册源即可工作(我的自定义源是一个对象,它在其末尾调用了 register 方法,该方法会根据需要进行初始化)
但不幸的是,如果没有为每个执行程序手动注册源,这对于指标注释不起作用(如预期的那样)(指标系统不知道我的自定义源/报告器,我们需要这样通知)。
在下面的示例中(顺便说一下),我正在使用 sc.parrallelige 但在现实世界的应用程序中我们不能使用这种方法(尤其是在使用 spark.dynamicAllocation.enabled 时),而是我们需要注册一个 spark 监听器( addSparkListener 然后覆盖 onExecutorAdded)。
鉴于这种情况,我如何告诉 spark 在添加执行程序时调用我的 register() ?(并取消注册 onExecutorRemoved)
java - 在类路径中有 log4j-core 时“@throws 的使用无效”编译错误
大约一周前,我们开始在测试中遇到此错误。它一直在开启和关闭——有时人们会得到它,而有时他们不会。
我想错误信息有点模糊。无效怎么办?代码对我来说看起来不错:
我们确实在编译期间打开了doclint,因为我们想查找有关Javadoc 错误的信息,而不必单独运行Javadoc。
这个错误到底是什么意思?我们在这里所做的有什么无效的吗?我们是否正在查看编译器错误?当然,像这样的错误会打击第一个试图声明方法抛出异常的人...... :(
目前调查...
java - Java Annotation - 限制具有相同字段元素值的注释的基数(出现)
我有以下条件,它需要具有特定字段值的 Java 注释在类的任何字段中只出现一次。Java 8可以吗?
我的注释
使用注释的类就像
我想要的只是防止程序员使用类似的东西
即具有特定ID @TestAnnotation(id="test2")
的相同注释不能在字段上使用两次。至少在类中的应用字段中id="..."
应该是唯一的。@TestAnnotaion
java - Java Annotation - 使用 Bean introspector 访问私有字段上的注释(不使用 Field 对象)
在将其标记为重复之前,请注意这是具有特定场景的非常具体的问题,我已经在论坛上进行了广泛搜索以获取任何答案线索。在报告重复之前,请确保在其他线程中完全解决了这篇文章中的查询。
我有以下情况:
带有 RUNTIME 保留策略的注释
它被用作
现在在其他课程中,我正在尝试使用
但是 myAnno 的值是 Null。但是,如果我使用Class.forName("TestBean").getDeclaredFields()[1].getAnnotation(TestAnnotation.class)
; 我能够获得价值。这意味着 RUNTIME 保留正在工作。
我只需要关于如何使用 Bean Introspection 来获取注释的帮助。我不想使用getDeclaredFields
,所以请把它作为一种可能性。
java - 注释处理器:有没有办法知道带注释的类是否扩展了特定的类?
我想检查是否有任何带注释的类的祖先实际上是android.support.v4.app.Fragment
.
目前我写了一个递归方法来做到这一点。
我想知道是否有更好的方法来做到这一点?
主要目的是限制我的注释被添加到任何类中。
我也用squareup.javapoet
.
java - Java Annotation 能否从方法中获取值,然后为该方法返回另一个值
这是我的 POJO。
这是我的注释
我想要做的是:在我的 pojo 的 Getter 方法上放置一个掩码注释,并希望 getter 返回一些与对象字段不同的值,比如说我的投资者名字是“Mike”,但我已经在上面放了一个 MaskName 注释,所以每当我调用 getInvestorName() 方法时,它应该返回一个掩码值 (xxxx) 。
我该如何实现这一点,是否可以使用自定义注释来实现这一点
java - 实现方法时有什么方法可以包含接口的名称
实现方法时有什么方法可以包含接口的名称吗?如果我必须实现 3 个接口,那么很难提醒我实现的方法来自哪里。
如果我需要 2 个接口来实现相同的方法名称。我怎样才能知道我正在实施哪种方法?
谢谢
java - 从调用堆栈中检索最顶层注释的函数
我想定义一个抽象基类,它定义了我想在测试各种 API 时一遍又一遍地实现的通用可重用测试用例。这个想法是定义一次测试,然后我可以从通用测试继承以获得测试定义,而我的测试代码所要做的就是实现如何执行测试的细节。这样我就不会错过好的测试用例,当我想出另一个好的测试用例来测试时,我不必重新发明轮子,也不必在几十个地方进行更改。
本质上,我正在做参数化测试,其中参数是在基类中定义的。预期结果也在基类中定义。但是,有时需要覆盖预期结果。例如,一个普通的字符串字段可能允许任何字符,而一个对象名称字段可能(或在我的情况下)限制哪些字符是合法的。例如,字符串字段允许“?” 在值中,名称字段没有。
我试图找出一种在基类中定义参数 ONCE 的干净方法,并且只定义一次预期结果,但可以选择在上下文需要的实现类中覆盖它。
我遇到的问题是,当您覆盖一个方法时,您必须替换它的实现。你不能只替换它的一部分。我想在不覆盖参数部分的情况下替换预期结果。我也不认为将每个测试分成两种方法是一种干净或理想的解决方案,一种提供参数,另一种定义预期行为。
我正在考虑的一种选择是使用注释来定义预期结果。然后我可以覆盖注解,然后将实现委托给基类实现。只要基类使用注释来决定如何表现,它就应该起作用。
例如:(在伪代码中,不是真正的 Java)
鉴于这种层次结构,foo.test1()
、bar.test1()
和baz.test1()
都做完全相同的事情。而foo.test2()
做一件事,又做另一bar.test2()
件事baz.test2()
。同样,foo.test3()
做bar.test3()
一件事,却baz.test3()
会有所不同。
我可以使用注释来完成此行为吗?如果是这样,isFubar
会是什么样子?我还没有看到方法名称未知的这种反射的示例。
作为旁注,如果有一种更清洁的方法来完成预期的行为,我很乐意听到它是什么。