标签: annotations

使用枚举值和注释进行Java字符串验证

我想使用注释针对一组值验证字符串.我想要的基本上就是这个

@ValidateString(enumClass=com.co.enum)
String dataType;

int maxValue;
int minValue;
int precision;
Run Code Online (Sandbox Code Playgroud)

要么

@ValidateString(values={"String","Boolean", "Integer"})
String dataType;

int maxValue;
int minValue;
int precision;
Run Code Online (Sandbox Code Playgroud)

我还想根据dataType中设置的值对其他变量进行一些验证,

if(dataType ="String")maxValue,minValue,precision all应为null或0.

我无法想到通过自定义注释实现这一目标的方法..

有人请帮帮我

java enums annotations

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

如何编写Java注释处理器?

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

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

java annotations

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

在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万
查看次数

如何使用Hibernate获取两个字段的唯一键?

我有一个实体类的两个字段,我不希望它们是唯一的,而是用作一个键的复合字段,它必须是唯一的.例如,我有两个字段(名称和版本),对于其他记录可以是相同的,但它们必须是唯一的.使用Hibernate(带注释)的最佳方法是什么?我正在使用Hibernate Validator用于其他字段,但我不确定如何使用它来验证两个字段一起组成一个唯一键.我正在使用一个通用实体类,它具有一个id泛型类型,可以换成复合键类,但我还没有得到它的工作得很好.

java orm annotations hibernate jpa

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

源代码注释工具

我正在寻找一个可以用来注释源代码的工具.

我有一些我需要了解的第三方源代码(JavaScript),我不想更改它(添加内联注释)以便

  • 行号可以保持不变(与他人沟通),
  • 我可以避免意外改变某些东西
  • 与作者的评论相比,我的注释更加突出.

通常情况下,我会在上面写一个涂鸦的全部内容,但代码太长了,我需要按电子邮件分享.如果能够做到这一点,我会很高兴,包括能够在代码中的这些位置之间创建"链接",甚至可能在视觉上用线条或箭头.

javascript code-analysis annotations

24
推荐指数
1
解决办法
3981
查看次数

如何将xml属性添加到jaxb带注释的类XmlElementWrapper?

我有一个带有XmlElementWrapper注释的类,如:

...

  @XmlElementWrapper(name="myList")
    @XmlElements({
    @XmlElement(name="myElement") }
    )
    private List<SomeType> someList = new LinkedList();
Run Code Online (Sandbox Code Playgroud)

...这段代码生成XML

<myList>
  <myElement> </myElement>
  <myElement> </myElement>
  <myElement> </myElement>
</myList>
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

但是现在我需要在list标签中添加属性以获得XML

<myList number="2">
  <myElement> </myElement>
  <myElement> </myElement>
  <myElement> </myElement>
</myList>
Run Code Online (Sandbox Code Playgroud)

有没有一种'聪明的方法来实现这一目标而不创建一个包含代表列表的新类?

xml annotations linked-list jaxb

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

Hibernate/JPA注释中的多列连接

我有两个实体,我想通过多个列加入.这些列@Embeddable由两个实体共享的对象共享.在下面的示例中,Foo只能有一个BarBar可以有多个Foos(其中AnEmbeddableObject是唯一的键Bar).这是一个例子:

@Entity
@Table(name = "foo")
public class Foo {
    @Id
    @Column(name = "id")
    @GeneratedValue(generator = "seqGen")
    @SequenceGenerator(name = "seqGen", sequenceName = "FOO_ID_SEQ", allocationSize = 1)
    private Long id;
    @Embedded
    private AnEmbeddableObject anEmbeddableObject;
    @ManyToOne(targetEntity = Bar.class, fetch = FetchType.LAZY)
    @JoinColumns( {
        @JoinColumn(name = "column_1", referencedColumnName = "column_1"),
        @JoinColumn(name = "column_2", referencedColumnName = "column_2"),
        @JoinColumn(name = "column_3", referencedColumnName = "column_3"),
        @JoinColumn(name = "column_4", referencedColumnName = "column_4")
    })
    private …
Run Code Online (Sandbox Code Playgroud)

java annotations hibernate jpa

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

TargetApi没有考虑在内

在我们的一个方法中,我们在列表视图中使用smoothScrolling.由于此方法在API Level 8(FROYO)之前不可用,因此我们使用TargetApi注释来防止在以前的SDK版本中调用该方法.

如您所见,我们在类定义和使用类对象的语句中使用TargetApi注释.这不仅仅是需要的.

我们的问题是没有考虑TargetApi注释并使我们的模拟器在版本ECLAIR(SDK 7)中崩溃.通过跟踪,我们只是意识到应该只在版本8+中执行的代码也在版本7中执行.

我们错过了什么吗?

这段代码在听众中:

@TargetApi(8)
private final class MyOnMenuExpandListener implements OnMenuExpandListener {
    @Override
    public void onMenuExpanded( int position ) {
        doScrollIfNeeded( position );
    }

    @Override
    public void onMenuCollapsed( int position ) {
        doScrollIfNeeded( position );
    }

    protected void doScrollIfNeeded( int position ) {
        if ( mListViewDocuments.getLastVisiblePosition() - 2 < position ) {
            mListViewDocuments.smoothScrollToPosition( position + 1 );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且监听器以这种方式注册:

@TargetApi(8)
private void allowSmothScrollIfSupported() {
    if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO ) {
        //This …
Run Code Online (Sandbox Code Playgroud)

android annotations emulation

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

JPA @Entity注释的确切含义是什么?

我正在Spring应用程序中学习JPA,我对@Entity注释有一些疑问.

所以我有一个这样的模型类:

@Entity
@Table(name= “T_CUSTOMER”)
public class Customer {

    @Id
    @Column(name=“cust_id”)
    private Long id;

    @Column(name=“first_name”)
    private String firstName;

    @Transient
    private User currentUser;

    ...........................
    ...........................
    ...........................
}
Run Code Online (Sandbox Code Playgroud)

好的,我知道@Entity注释是在类级别上,这意味着作为此类实例的对象的字段将映射到T_CUSTOMER数据库表的字段.

但是为什么在JPA中必须使用@Entity注释,我不仅可以使用@Table注释将模型对象映射到特定的数据库表?它有一些其他意义\行为,实际上我错过了?

我错过了什么?@Entity注释的确切含义是什么?

entity annotations jpa

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

什么是Spring MVC控制器方法的有效返回类型?

我没有太多的Spring MVC经验,我有以下关于控制器方法可以返回的valids返回类型的内容.

所以我知道用户生成一个由DispatcherServlet接收和处理的HttpRequest,它将此请求分派给特定的控制器类.

控制器类是这样的:

@Controller
public class AccountController {

    @RequestMapping("/showAccount")
    public String show(@RequestParam("entityId") long id, Model model) {
        ...
    }

    .......................................
    .......................................
    .......................................
}
Run Code Online (Sandbox Code Playgroud)

所以我知道每个方法处理一个特定的请求,并且处理的请求由@RequestMapping注释指定.

我也知道该方法返回一个String对象,该对象是逻辑视图名称(然后由视图解析器解析以呈现视图)

所以,在这个阶段,我认为控制器类的方法只返回String对象.但我不确定.也许像这样的方法也可以返回一些不同类型的对象?

java model-view-controller spring annotations spring-mvc

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