标签: annotations

Struts2注释Valiation NullPointer异常

我通过任何类型的验证突然得到这个例外.

java.lang.NullPointerException
    at com.opensymphony.xwork2.validator.AnnotationValidationConfigurationBuilder.processCustomValidatorAnnotation(AnnotationValidationConfigurationBuilder.java:393)
    at com.opensymphony.xwork2.validator.AnnotationValidationConfigurationBuilder.processValidationAnnotation(AnnotationValidationConfigurationBuilder.java:233)
    at com.opensymphony.xwork2.validator.AnnotationValidationConfigurationBuilder.processAnnotations(AnnotationValidationConfigurationBuilder.java:74)
    at com.opensymphony.xwork2.validator.AnnotationValidationConfigurationBuilder.buildAnnotationClassValidatorConfigs(AnnotationValidationConfigurationBuilder.java:772)
    at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildClassValidatorConfigs(AnnotationActionValidatorManager.java:254)
    at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildValidatorConfigs(AnnotationActionValidatorManager.java:342)
    at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildValidatorConfigs(AnnotationActionValidatorManager.java:321)
    at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.getValidators(AnnotationActionValidatorManager.java:86)
    at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:125)
    at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:117)
    at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:112)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:222)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) …
Run Code Online (Sandbox Code Playgroud)

validation annotations struts2

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

无法设置Hibernate中的Generic Generator参数

我想将外部策略生成器用于我班级中的一个关键属性.最简单的方法如下所示:http: //blog.eyallupu.com/2011/01/hibernatejpa-identity-generators.htmlhttp://www.coderanch.com/t/219256/ORM/databases/HBM-Annotation -Foreign-Generatorhttp://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example-annotation/

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;
...
...
...
@GenericGenerator(
        name = "myForeignGenerator",
        strategy = "foreign",
        parameters = @Parameter(name = "property", value = "osoba"))
@Id
@GeneratedValue(generator = "myForeignGenerator")
@Column(name = "IdPracownik", unique = true, nullable = false)
public int getIdPracownik() {
    return this.idPracownik;
}
Run Code Online (Sandbox Code Playgroud)

和Eclipse显示错误:

"类型不匹配:无法从参数转换为注释",下划线"@Parameter"注释.

这是为什么?

annotations hibernate foreign-keys one-to-one

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

Java注释会抛出NullPointerException.

不知道我在这里做错了什么.我的目标是获取方法的注释(如果存在).

public class RunTest
{
public static void main(String[] args) throws Exception, NoSuchMethodException
{
    MyAction action = new MyAction(); 

    Method method = action.getClass().getDeclaredMethod("printSomething");

    RequiredPermission permission = method.getAnnotation(RequiredPermission.class);
    String value = permission.permissionName();

    System.out.println("permission name: "+value);

}
}
Run Code Online (Sandbox Code Playgroud)

MyAction类

public class MyAction
{
@RequiredPermission(permissionName="SYSO", permissionValue = 0)
public void printSomething()
{
    System.out.println("hi there");
}

public void printABC()
{
    System.out.println("ABC...");
}
}
Run Code Online (Sandbox Code Playgroud)

和注释:

public @interface RequiredPermission
{
    String permissionName();
    int permissionValue();
}
Run Code Online (Sandbox Code Playgroud)

我希望在控制台上看到:

权限名称:SYSO

但相反,我得到:

com.annotation.RunTest.main(RunTest.java:14)中线程"main"java.lang.NullPointerException中的异常

java annotations

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

grails中两个动作签名之间的差异

在grails中,我们可以使用两种方式定义一个动作: -

def actionname()
{

}
Run Code Online (Sandbox Code Playgroud)

def actionname = {

}
Run Code Online (Sandbox Code Playgroud)

这两种风格有什么区别?当我试图在动作(第二种风格)上方插入弹簧安全注释时,它说"@Secured" not applicable to field.这是什么意思?是因为关闭?

grails closures annotations spring-security grails-plugin

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

在Dart中,您可以使用反射在运行时检索元数据(例如,注释)吗?

如果是这样,这是如何实现的?如果没有,是否有任何计划在未来的Dart版本中支持这一点?我主要是指你自己创建的自定义注释.

在此文档链接https://www.dartlang.org/docs/spec/latest/dart-language-specification.html#h.d0rowtffuudf中,它说:"元数据与程序构造p的抽象语法树相关联紧接着元数据,假设p本身不是元数据或注释.元数据可以在运行时通过反射调用检索,前提是注释的程序结构p可以通过反射访问.

从M3版本开始,尚未实现对元数据的反射访问."

谢谢.

annotations dart dart-mirrors

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

添加到mapkit时如何自动选择注释

我有一张地图,我可以用代码添加pin(注释).我想在运行我的应用程序时,在我的应用程序中添加注释时自动选择此注释,当单击地图而不是注释我的注释取消选择.我可以处理选择并取消选择我的注释,但肯定必须单击注释,直到选择并单击地图(另一个地方而不是注释),直到我的注释取消选择.

我不想要这个.我想在运行我的应用时自动选择我的注释,只需要在地图上点击另一个地方,直到我的注释取消选择.

请指导我.这是我处理select/deselect注释的代码:

static NSString* const ANNOTATION_SELECTED_DESELECTED = @"mapAnnotationSelectedOrDeselected";


- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    NSLog(@"2");
    NSString *action = (__bridge NSString *)context;
    if ([action isEqualToString:ANNOTATION_SELECTED_DESELECTED]) {
        BOOL annotationSelected = [[change valueForKey:@"new"] boolValue];
        if (annotationSelected) {
            NSLog(@"Annotation was selected, do whatever required");
        }else {
            NSLog(@"Annotation was deselected, do what you must");

        }
    }
}
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
    if ([mapViews.annotations count] > 1) {
        for (MKAnnotationView *anAnnotationView in views) {
            [anAnnotationView addObserver:self forKeyPath:@"selected" options:NSKeyValueObservingOptionNew context:(__bridge void …
Run Code Online (Sandbox Code Playgroud)

annotations objective-c mapkit mkannotation ios

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

返回null的方法中的java @Nonnull批注

我有一个从哈希图中获取内容的方法,一个简化的示例(虽然没有多大意义,但目前已经足够好了)是:

private Map<String,String> map = new HashMap<String,String>();

public String get(String key) {
    return map.get(key);
}
Run Code Online (Sandbox Code Playgroud)

当给定键的条目明显不存在时,此方法可以返回null。事实是,我想对此方法进行注释@NonNull(因为它用在了数不胜数的地方,而且我不喜欢Intellij向我发送有关生产NPE的检查警告,因此我不想关闭该检查,我也不想在每次调用此方法时都检查返回的值是否不同于null,这是因为我总是将此方法与始终在映射中的一堆键一起使用,因此由于程序逻辑,该方法是一定要返回一个@NonNull值。

我很想只用来注释它@NonNull,但谁知道有人可能用某处定义的键以外的名称来调用它,并实际上导致了NullPointerException。你会怎么做?一个断言听起来很诱人。还是您只是更改方法以引发RuntimException?还是AssertionError?

谢谢。

编辑:

这是实际的实现:

/**
 * Typesafe heterogeneous container pattern - implementation
 */
public class HandlersMap {

    private final Map<Class<? extends TableHandler>, TableHandler> handlers;

    public HandlersMap() {
        handlers = new HashMap<Class<? extends TableHandler>, TableHandler>();
        putHandler(RolesTableHandler.class, new RolesTableHandler());
        putHandler(UsersTableHandler.class, new UsersTableHandler());
        putHandler(DevicesTableHandler.class, new DevicesTableHandler());
    }

    private <T extends TableHandler> void putHandler(@NonNull final Class<T> type, @NonNull final T instance) { …
Run Code Online (Sandbox Code Playgroud)

java annotations notnull

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

删除源文件中的注释时,自动删除Java 7 Annotation Processor生成的文件

我正在为java 7源代码编写java注释处理器.当然,我可以使用javax.annotation.processing.filer来帮助我自动生成项目目录下的文件.

例如:注释是@becare

public interface test {
   @becare
   int compare(int a, int b);
}
Run Code Online (Sandbox Code Playgroud)

我的注释处理器的工作是当它检测到给定的注释@becare时,它会为我生成文件.

我的问题是,如果我从前面的代码片段中删除注释,我可以让注释处理器知道并删除它刚刚创建的文件吗?

或者有任何解决方法可以帮助我实现这一目标吗?

提前致谢.

java annotations

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

Android Studio中的Lombok前缀配置

我正在使用Lombok生成访问器方法.我的lombok.config文件在module/src/main/java目录中.配置文件看起来像这样.

lombok.accessors.prefix += m
config.stopBubbling = true
Run Code Online (Sandbox Code Playgroud)

我的代码中有以下内容.

@Setter String mRoute;

这似乎生成了函数getMRoute()而不是getRoute().

我已经尝试更改lombok.config文件的位置,甚至安装了IntelliJ的Lombok插件.

annotations intellij-idea lombok android-studio

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

在运行时阅读装饰有特定注释的所有类

我需要在运行时阅读所有装饰有特定注释(例如@HttpSecurity)的类(接口)。扫描后,我希望阅读和解析装饰有注释的类的字段(枚举字段)。例如。

@HttpSecurity
public interface MyHttpSecurityConfig {

public enum secure {
    @Path(pathGroup = "/*", pathName = "")
    @Authc
    @Form(errorPage = "/error.html", loginPage = "/login.html", restoreOriginalRequest = "")
    @Authz
    @AllowedRoles(roles = { "roleA", "roleB" })
    @AllowedGroups(groups = { "groupA" })
    @AllowedRealms(realms = { "realmA" })
    @Expressions(expressions = { "#{identity.isLoggedIn()}" })
    Admin
  }
}
Run Code Online (Sandbox Code Playgroud)

可能存在一个或多个用@HttpSecurity装饰的类/接口。我的第一个要求是获取所有此类,第二个要求是通过读取注释及其在枚举字段上修饰的值来构建HttpSecurityBuilder。第二个要求很好,可以使用反射消除。但是,我的问题是第一个要求。我想用JavaSE核心实现第一个要求,即不使用任何外部依赖项,例如google Reflections。如有必要,可以假定我们具有要在其中扫描类的程序包名称。这是我做过什么用CDI

java reflection annotations cdi

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