标签: annotations

一个自动测试方法参数并为.net/VS抛出ArgumentNullException的工具?

当我编写代码时,我有这种奇怪的习惯,用代码抛出这样的异常就可以启动我的方法

public WhateverType MethodName(CrazyObjectType crazyObject, string para2){
    if(crazyObject == null){
        throw new ArgumentNullException("crazyObject");
    }
    if(param2 == null){
        throw new ArgumentNullException("param2");
    }
    if(para2.Lenght > 32){
        throw new ArgumentOutOfBoundsException("para2");
    }

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

考虑一些方法有6个参数,其中不允许为null,其中一些是可能不为空或长于某个值的字符串.你可以想象,在我得到实际的方法逻辑之前,我写了很多代码+我的类将更难阅读.

是否有任何工具/ VS插件/ Resharper插件/注释/代码片段,以便我不必编写所有这些重复的代码?

理想的解决方案是一些声明性注释,例如:

[NotNull("crazyObject, param2")] [StringLenght("para2", 0, 32)]
public WhateverType MethodName(CrazyObjectType crazyObject, string para2){
    ...
}
Run Code Online (Sandbox Code Playgroud)
  • 一些VS/Resharper插件,允许折射这样的参数,所以当我重命名/折射时,一些参数注释会自动同步?

而且我的理想图像更进一步,我想我可以使用GUI来自动化进程,以便我选择方法点击某处,检查一些不应该为null的参数的复选框,并为我生成注释.

这样的事情存在吗?


注意:我想我总是可以创建代码片段来生成代码,但声明性方法和GUI生成器会更好.


编辑:说"考虑一些方法有6个参数"只是一个例子 - 我不认为我有很多这样的方法.相反,我应该写"考虑你有很多方法可以投入3-4 ArgumentException秒".

编辑2:不好的术语.我意识到我在这个问题中到处称之为"注释",如果我从.NET类中正确地记住它,我的注释应该可能在.NET中被称为"属性".

.net c# annotations exception visual-studio

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

多个注释(IOS)最简单的方法

我在IOS中使用Annotations来显示伦敦地铁站,但我正在看数字,有280左右.这是最简单的方法吗?单独还是有其他选择?

欢呼所有的建议

大卫

annotations mkannotation

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

注释类"public static @interface"中的static关键字是什么?

我发现了一个奇怪的注释:

public static @interface WebResult { }
Run Code Online (Sandbox Code Playgroud)

为什么static?他们是如何编译的?我的IDE不允许这样的修改器!

包含的类是javax.jws.WebResult.

java static annotations

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

如何检查@Before是否正在使用play框架

我正在运行播放应用程序.

我有

import org.junit.Before;
public class Frontpage extends Controller {
    @Before
    private static void commonData() {
            Map cacheMap = Cache.get("login_det",Map.class);
            System.out.println("commonData");
            if(cacheMap!=null)
            {
             renderArgs.put("login_det", cacheMap);
             System.out.println("renderArgs"+renderArgs.toString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是commonData永远不会在我的控制台中打印出来.我如何检查@Before是否有效

annotations playframework

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

如果我想在注释中使用hibernate,我是否必须使用javax.persistence.*?

我知道hibernate是JPA的一个实现,也有自己的特性.我正在尝试使用带有注释的hibernate,但我发现我必须在包"javax.persistence.*"下使用一些注释,例如:Column,OneToMany,ManyToOne等等.

我不想使用JPA,但是在"org.hibernate.annotations"包下找不到像OneToMany这样的注释.那么,jpa annatations是hibernate的一部分吗?如果我想在jpa中使用hibernate,我必须使用一些"javax.persistence.*"注释?

annotations hibernate jpa

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

@Getter @Setter注释无法解析为类型

我试图在我的JavaBean中自动化getter和setter方法.

因为,为Beans @ Naming Convention描述了方法和字段命名约定,所以必须有一种方法来使用这些约定来避免样板代码,例如为每个bean编写getter和setter方法.我发现了一个这样的方式在这里.

我在我的Windows机器上使用带有Java SE 6的Eclipse Helios IDE.虽然Eclipse提供了一种生成getter和setter方法而无需显式编写它们的方法,但使用注释会使代码更加清晰和可读.

但是,当我在Eclipse中编写以下代码时,我得到以下错误@Compile-time:

    private @Getter @Setter int price;
Run Code Online (Sandbox Code Playgroud)

错误:

Getter无法解析为某种类型.
Setter无法解析为某种类型.

我该如何解决?

java annotations

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

Hibernate Annotation,如何使用@Joincolumn引用外键?

我使用Hibernate 3.6.8.这是我的表格:

CREATE TABLE UTILIZATION (
ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY 
... 
FK_WORKCATEGORY SMALLINT,
CONSTRAINT PK_UTILIZATION PRIMARY KEY ( ID));

CREATE TABLE DB2ADMIN.WORKCATEGORY(
ID SMALLINT NOT NULL,
DESCRIPTION VARCHAR(50),
CONSTRAINT PK_WORKCATEGORY PRIMARY KEY(ID));

ALTER TABLE UTILIZATION ADD FOREIGN KEY (FK_WORKCATEGORY) REFERENCES WORKCATEGORY(ID); 
Run Code Online (Sandbox Code Playgroud)

我的Pojos:

@Entity
@Proxy(proxyClass=IWorkCategory.class)
@Table(name="WORKCATEGORY")
public class WorkCategory extends BoBase implements Serializable, IWorkCategory{

    @Id
    private Integer Id;
    private String description;

    @Override
    public Serializable getId() {
        return Id;
    }
    @Override
    public void setId(Serializable id) {
        Id …
Run Code Online (Sandbox Code Playgroud)

annotations hibernate

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

带有maven配置文件属性的Spring 3 @value注释

我在pom.xml中为不同的配置文件定义了一堆属性.我想使用@value注释来注入属性值.只需在构建时获取值即可.

我对这个@value注释有什么样的选择?我是否必须拥有单独的属性文件,还是可以使用applicationContext.xml?

java spring annotations properties maven

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

GWT AutoBean:注释@PropertyName不再起作用

我使用AutoBean将数据编码/解码为JSON,这在以前的GWT版本中都可以.在我看来,AutoBean是处理JSON的非常好用且方便的工具.自GWT ver.2.4.0以来,这个功能已经改变,我花了一些时间在我的代码中恢复它.但只有一个部分仍未固定 - 注释@PropertyName.此注释用于向属性添加"别名".它节省了大量的网络流量.现在它引发了一个例外.代码示例如下:

import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;

public interface IPersonInfo {

    // Name
    @PropertyName("n")
    public String getName();
    public void setName(String name);

    // Surname
    @PropertyName("s")
    public String getSurname();
    public void setSurname(String surname);

    // other properties...
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试以这种方式将其解码为JSON:

AutoBean<IPersonInfo> user = factory.user();

// clone the userDto (it's a new way to clone an object in ver 2.4.0
// instad of deprecated clone() method)
Splittable data = AutoBeanCodex.encode(user);
IPersonInfo userDto = AutoBeanCodex.decode(factory, IPersonInfo.class, data).as();

userDto.setName("Name");
userDto.setSurname("Surname");
//... other properties
Run Code Online (Sandbox Code Playgroud)

这段代码在遗留代码中完美运行.但现在(在GWT 2.4.0中)我得到一个例外:

java.lang.IllegalArgumentException: …
Run Code Online (Sandbox Code Playgroud)

java gwt annotations autobean

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

MKMapView没有刷新注释

我有一个MKMapView(显然),它显示了用户周围的住房位置.

我有一个Radius工具,在进行选择时,应根据用户周围的距离添加/删除注释.

我有它添加/删除罚款,但由于某种原因,注释将不会显示,直到我放大或缩小.

这是根据距离添加/删除注释的方法.我尝试了两种不同的方法.

  1. 将新注释添加到数组,然后通过添加到地图[mapView addAnnotations:NSArray].

  2. 添加使用时找到的注释[mapView addAnnotation:MKMapAnnotation];


1.

- (void)updateBasedDistance:(NSNumber *)distance {

    //Setup increment for HUD animation loading
    float hudIncrement = ( 1.0f / [[[[self appDelegate] rssParser]rssItems] count]);

    //Remove all the current annotations from the map
    [self._mapView removeAnnotations:self._mapView.annotations];

    //Hold all the new annotations to add to map
    NSMutableArray *tempAnnotations;

    /* 
     I have an array that holds all the annotations on the map becuase 
     a lot of filtering/searching happens. So for memory reasons it is
     more …
Run Code Online (Sandbox Code Playgroud)

xcode annotations objective-c mkmapview ios

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