标签: annotations

属性依赖于另一个字段

在我的ASP.NET MVC应用程序的模型中,我想仅在选中特定复选框时才根据需要验证文本框.

就像是

public bool retired {get, set};

[RequiredIf("retired",true)]
public string retirementAge {get, set};
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

谢谢.

validation asp.net-mvc annotations model

25
推荐指数
4
解决办法
4万
查看次数

在Scala中注释构造函数参数

编译为字节码时,注释构造函数参数似乎无效.我也没有编译器警告.

以下作品.getAnnotations为了name现场返回javax.annotation.Nullable.

class Person {
    @Nullable var name: String = _;
}
Run Code Online (Sandbox Code Playgroud)

以下不适用于valvar.

class Person(@Nullable var name: String)
Run Code Online (Sandbox Code Playgroud)

这可能不是故意的,所以我有什么遗漏或者我应该提交错误报告吗?

annotations scala

25
推荐指数
1
解决办法
5422
查看次数

为定时方法调用编写java注释

我想写一个java注释,它是方法调用的时间.这样的事情:

@TimeIt
public int someMethod() { ... }
Run Code Online (Sandbox Code Playgroud)

并且当调用此方法时,它应该在控制台上输出此方法花了多长时间

我知道如何在python中做到这一点,这就是我想要它做的事情:

from time import time, sleep

def time_it(func):
    def wrapper(*args, **kwargs):
        start = time()
        func(*args, **kwargs)
        stop = time()
        print "The function", func.__name__, " took %.3f" % (stop - start)
    wrapper.__name__ = func.__name__
    return wrapper

@time_it
def print_something(*args, **kwargs):
    print "before sleeping"
    print args, kwargs
    sleep(3) # wait 3 seconds
    print "after sleeping"

print_something(1, 2, 3, a="what is this?")
Run Code Online (Sandbox Code Playgroud)

所以我的问题是?我在哪里找到一些类似这样的apt文档,我试过文档,没有运气.有人可以帮忙写这样的东西吗?

java annotations timing

25
推荐指数
4
解决办法
2万
查看次数

如何编写Java注释处理器?

我可能只是在寻找错误的方向,但我发现注释处理的JSE文档非常稀疏.我想编写一个注释处理器,它处理带注释的String字段和局部变量,用计算的String表达式替换它们.这不应该太复杂,但我在Javadoc for javax.annotation.processing中迷失了.

编辑:我需要在编译时处理注释,因为我想修改生成的代码.它应该用计算的String表达式替换带注释的常量String表达式.

java annotations

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

Java函数注释帮助,使用@Deprecated?

场景:
Java 1.6

class Animal { 
    private String name; 
    ...  
    public String getName() { return name; }  
    ...
}

class CatDog extends Animal {
    private String dogName;
    private String catName;
    ...
    public String getDogName() { return dogName; }
    public String getCatName() { return catName; }
    public String[] getNames() { return new String[]{ catName, dogName }; }
    ...
    public String getName() { return "ERROR! DO NOT USE ME"; }
}
Run Code Online (Sandbox Code Playgroud)

问题:
getName没有意义,不应该在这个例子中使用.我正在阅读@Deprecated注释.有更合适的注释方法吗?

问题:
A)使用此功能时(运行前)是否可以强制执行错误?
B)有没有办法为我将使用的注释方法显示自定义警告/错误消息?理想情况下,当用户将鼠标悬停在已弃用/错误函数上时.

java annotations

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

带有前缀的JPA Multiple Embedded字段?

使用JPA annoations,我想重用相同的嵌入对象,如下所示:

@Entity
public class User {
    @Embedded
    public Address homeAddress;

    @Embedded
    public Address workAddress;
}

@Embeddable
public class Address {
    public String code;
    public String city;
    ...
} 
Run Code Online (Sandbox Code Playgroud)

我可以使用@AttributeOverrides,@ AttributeOverride和@Column指定SQL列名,但它是verbos.是否可以仅为homeAddress和workAddress指定要添加到每列的前缀?

谢谢,

泽维尔

java annotations jpa

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

使用弹簧刻板印象的优点?

我正在使用spring-mvc开发一个Web应用程序.

现在可以使用@ Controller,@ Service和@Repository构造型.

我发现@Controller特别有用,特别是因为我正在使用

<context:component-scan base-package="my.cool.controller"/>
Run Code Online (Sandbox Code Playgroud)

现在,关于@Service和@Repository,到目前为止看起来像

  1. 如果使用正确的构造型注释类,则可以更好地处理异常,确定,这是我承认的优势
  2. 我可以使用组件扫描服务和DAO /存储库,但是我不喜欢使用组件扫描的想法,因为它减慢了应用程序的启动时间,这对我来说是一个关键特性(即使它只是1秒,我每周重新部署一次)

那么,除了更好的例外,还有其他任何优势吗?注释类是否会影响性能?

java spring annotations spring-mvc

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

PostgreSQL枚举和Java枚举之间的Hibernate映射

背景

  • Spring 3.x,JPA 2.0,Hibernate 4.x,Postgresql 9.x.
  • 使用我要映射到Postgresql枚举的枚举属性处理Hibernate映射类.

问题

查询枚举列上的where子句会引发异常.

org.hibernate.exception.SQLGrammarException: could not extract ResultSet
... 
Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: movedirection = bytea
  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

代码(大大简化)

SQL:

create type movedirection as enum (
    'FORWARD', 'LEFT'
);

CREATE TABLE move
(
    id serial NOT NULL PRIMARY KEY,
    directiontomove movedirection NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

Hibernate映射类:

@Entity
@Table(name = "move")
public class Move {

    public …
Run Code Online (Sandbox Code Playgroud)

java postgresql enums annotations hibernate-mapping

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

在Android Studio中使用@NonNull注释的正确方法

我想@NonNull在Android中使用注释,但我无法找到正确的方法来实现它.我建议你这个例子:

public void doStuff(@NonNull String s){
     //do work with s...    
}
Run Code Online (Sandbox Code Playgroud)

所以当我打电话doStuff(null)给IDE时会给我一个警告.问题是我不能依赖这个注释,因为像这个问题所指出的那样,它们不会传播得很远.所以我想对我的方法进行空检查,如下所示:

 if(s==null) throw new IllegalAgrumentException();
Run Code Online (Sandbox Code Playgroud)

但是假设这个IDE s!=null会警告我s==null总是假的.我想知道最好的方法是什么.

我个人认为应该有一个注释@ShouldntBeNull,只有检查并警告null不会传递给它,但是当值为null时不会抱怨.

java android annotations non-nullable

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

JSR-305注释替代Java 9

到目前为止,我们一直在使用Findbugs JSR-305注释(com.google.code.findbugs:jsr305),包括工具支持(Sonar,Eclipse,Findbugs,...)在内的一切工作正常.

但是我们的理解是Java 9中的Jigsaw将打破JSR-305注释(不允许在两个模块中使用一个包).这在JavaOne 2015上得到了证实.Oracle的推理是JSR-305从未发生过,JSR-250必须支持这些注释.

我们正在寻找可以在Java 8和Java 9中工作的JSR-305注释的替换.如果历史是任何指南,Java 9 GA和Java 8 EOL之间的时间将相当短,我们想修复我们的任何不兼容性提前编码.从理论上讲,我们可以升级JDK的注释模块,但是在我们的工具链中执行此操作似乎需要做很多工作.

annotations static-analysis jsr305 java-platform-module-system java-9

25
推荐指数
1
解决办法
3643
查看次数