标签: annotations

检索Java注释属性

如何在带注释的方法上检索注释的值?

我有:

@myAnnotation(attribute1 = value1, attibute2 = value2)
public void myMethod()
{
  //I want to get value1 here
}
Run Code Online (Sandbox Code Playgroud)

java annotations

38
推荐指数
2
解决办法
5万
查看次数

包注释有什么意义?

我理解类注释的目的,这要归功于Java中使用的注释的方式和位置?.如本博客文章Java语言规范的§7.4.1所述,包注释的目的是什么?

为什么要将元数据与包关联?你能做什么?

java annotations

38
推荐指数
2
解决办法
1万
查看次数

什么时候Scala需要@uncheckedVariance,为什么在GenericTraversableTemplate中使用它?

@uncheckedVariance 可以用来弥合Scala的声明站点方差注释和Java的不变泛型之间的差距.

scala> import java.util.Comparator    
import java.util.Comparator

scala> trait Foo[T] extends Comparator[T]
defined trait Foo

scala> trait Foo[-T] extends Comparator[T]     
<console>:5: error: contravariant type T occurs in invariant position in type [-T]java.lang.Object with java.util.Comparator[T] of trait Foo
       trait Foo[-T] extends Comparator[T]
             ^

scala> import annotation.unchecked._    
import annotation.unchecked._

scala> trait Foo[-T] extends Comparator[T @uncheckedVariance]    
defined trait Foo
Run Code Online (Sandbox Code Playgroud)

这表示java.util.Comparator自然是反变体,即类型参数T出现在参数中,而不是返回类型.

这就引出了一个问题:为什么它还在Scala集合库中使用,它不是从Java接口扩展的?

trait GenericTraversableTemplate[+A, +CC[X] <: Traversable[X]] extends HasNewBuilder[A, CC[A] @uncheckedVariance]
Run Code Online (Sandbox Code Playgroud)

此注释的有效用途是什么?

annotations scala unchecked variance scala-2.8

38
推荐指数
3
解决办法
2249
查看次数

如何在@括号("Luke")之类的java注释中使用括号内没有属性?

如何在括号内没有属性名称的自定义java注释?

我不希望这样:@annotation_name(att=valor).我只想在Servlets中,即:

@WebServlet("/main")
Run Code Online (Sandbox Code Playgroud)

java attributes annotations default parentheses

38
推荐指数
3
解决办法
2万
查看次数

如何创建一组杰克逊注释的注释?

大约一年后,我读了一篇文章,解释了如何创建一个基本上是其他注释容器的注释.这样,如果我总是在特定用例中使用相同的5个注释,我会创建一个包含它们的注释并使用它.

不幸的是,我再也找不到这篇文章,而且我现在真的想为我的杰克逊配置做这件事.

由于我自己找不到任何相关信息,我开始质疑我的记忆.这可能还是我错了?

编辑

我想要的是:

@Target(ElementType.METHOD)
@com.fasterxml.jackson.databind.annotation.JsonSerialize(using=MySerializerThatIsUsedEverywhere.class
@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(MyCustomXmlAdapter.class)
@SomeOtherEvaluatedByTheSerializer
public @interface SerializerUseCase01 {
    public String a();
    public int b();
)
Run Code Online (Sandbox Code Playgroud)

我的情况是我有一堆序列化用例,可以由具有不同配置的相同序列化程序处理.为了使一切更容易使用和更透明,我想将jackson配置和序列化器配置包装成一个注释.

java annotations jackson

38
推荐指数
1
解决办法
1万
查看次数

Spring Web MVC:对请求参数和路径变量使用相同的请求映射

有没有办法表明我的Spring Web MVC控制器方法应该通过作为URI路径的一部分传递ID的请求来匹配...

@RequestMapping(method=RequestMethod.GET, value="campaigns/{id}")
public String getCampaignDetails(Model model, @PathVariable("id") Long id) {
Run Code Online (Sandbox Code Playgroud)

...或者如果客户端将ID作为样式中的HTTP请求参数发送...

@RequestMapping(method=RequestMethod.GET, value="campaigns")
public String getCampaignDetails(Model model, @RequestParam("id") Long id) {
Run Code Online (Sandbox Code Playgroud)

在我看来,这是一个非常常见的真实URL方案,我不想添加重复的代码,但我还没有找到答案.任何建议都非常欢迎.

编辑:事实证明,目前似乎(使用Spring MVC <= 3.0)没有办法实现这一点,请参阅Javi答案中的讨论.

java spring annotations spring-mvc

37
推荐指数
1
解决办法
6万
查看次数

在Eclipse中覆盖注释的错误

@Override在Eclipse中有一个令人讨厌的注释问题.通常,当我在新PC上导入工作项目时,Eclipse会将某些@Override注释标记为错误.如果我删除注释一切都很好,Eclipse也表示方法覆盖了父方法,但添加覆盖注释会再次导致错误.我目前正在开发一个Android项目,所以它可能是Android的问题,而不是Eclipse.

eclipse android overriding annotations

37
推荐指数
3
解决办法
2万
查看次数

在Groovy中使用@Value Spring Annotation

我有一个groovy课程,我想在一个属性值自动装配.

例如:

public @Value("${valueA}" ) String valueA;
Run Code Online (Sandbox Code Playgroud)

在我的应用程序上下文中添加了property-placeholder

<context:property-placeholder location="classpath:spring/app.properties" />
Run Code Online (Sandbox Code Playgroud)

app.properties具有为"valueA"设置的值,因此理论上这应该在运行时填充我的类中的String valueA.

如果我使用java类,这个设置工作正常,但如果我使用groovy类则不行.

我收到编译错误:

错误:预期'$ valueA'是@ org.springframework.beans.factory.annotation.Value中java.lang.String类型的内联常量
错误:属性'value'的类型应为'java.lang.String'; 但在@ org.springframework.beans.factory.annotation.Value中找到了'java.lang.Object'类型

我只是想知道在使用groovy类时上述语法是否正确,如果不是,那么在运行时自动装配@Value参数的正确语法是什么.

groovy spring annotations properties

37
推荐指数
2
解决办法
1万
查看次数

Java寻找具有特定注释及其注释元素的方法

假设我有这个注释类


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MethodXY {
    public int x();
    public int y();
}

public class AnnotationTest {
    @MethodXY(x=5, y=5)
    public void myMethodA(){ ... }

    @MethodXY(x=3, y=2)
    public void myMethodB(){ ... }
}
Run Code Online (Sandbox Code Playgroud)

那么有没有办法查看一个对象,使用@MethodXY注释"寻找"该方法,其中元素x = 3,y = 2,并调用它?

谢谢

java reflection annotations

37
推荐指数
1
解决办法
5万
查看次数

如何使用后面的代码创建自定义注释

我想创建自己的自定义注释.我的框架是Stand alone java应用程序.当有人注释他的pojo类时,后面的"隐藏"代码将触发方法.

例如,今天在Java EE中我们有@MessageDriven注释.当您使用@MessageDrivenMessageListener接口并使用MessageListener接口注释您的类时,会触发一个后面的代码onMessage(Message msg).当消息从队列/主题到达时.

如何创建@MyMessageDriven可以添加到pojo并实现的注释()MyCustomMessageListener.

我想要的结果是触发"隐藏"代码(我的),它将触发一个实现接口的方法(就像我在下面写的样本一样).

java annotations dependency-injection interface

37
推荐指数
2
解决办法
6万
查看次数