小编Bor*_*ška的帖子

如何在Java中使用自定义类型注释

Java 8具有名为Type annotations(JSR 308)的功能.我想将它用于简单的Object to Object映射器框架.我想像这样定义注释@ExpectedType

@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExpectedType {
    public Class<?> value();
}
Run Code Online (Sandbox Code Playgroud)

然后在我的代码中使用它,如下所示:

public class SomeServiceImpl() {
    public @ExpectedType(ObjectA_DTO.class) IObjectA doSomething(@ExpectedType(ObjectA_Entity.class) IObjectA obj) {
        return (ObjectA_Entity) obj; // it's correct
    }
}
Run Code Online (Sandbox Code Playgroud)

IObjectA是一个由类ObjectA_DTOObjectA_Entity.实现的接口.我想用这种方式服务:

// it's correct
assert someService.doSomething(new ObjectA_DTO()).getClass() == ObjectA_DTO.class;
Run Code Online (Sandbox Code Playgroud)

我想更改SomeServiceImpl方法的调用以使用Object mapper.它可以通过使用JSR 269或AOP 生成的代码来实现.

问题是我编写了简单的注释处理器,它根本不处理类型注释.简单注释处理器的来源如下所示:

@SupportedAnnotationTypes("*")
@SupportedSourceVersion(SourceVersion.RELEASE_8)
public class SimpleAnnotationsProcessor extends AbstractProcessor {

    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        Messager messager = …
Run Code Online (Sandbox Code Playgroud)

java annotation-processing java-8 type-annotation

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

良好的Java本地化框架

我正在寻找最好的Java本地化框架.默认的本地化框架对我来说还不够.

理想情况下,我正在寻找具有以下功能的本地化框架:

  • 样式支持 - 就像Apache Wicket本地化框架一样
  • 格式化支持 - 日期和数字格式支持
  • 多种支持 - 就像GWT本地化框架一样
  • 消息层次结构 - 在消息级别获取的层次结构中的本地化 通常是查找路径名称[样式] [区域设置] - >名称[区域设置] - >名称[样式] - >名称,但它是在文件级别获得的 - 如果某些消息不在文件中,则不会被翻译.我希望在消息级别获得本地化.

如果你了解一些好的本地化框架,请给我回音.如果您认为我的要求有些不对,请告诉我.

java frameworks localization internationalization

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

如何减慢和加快JavaScript的时间

我实现了一个如何在JavaScript中暂停时间的示例.这个例子在这里http://jsfiddle.net/suska/n4g5U/

// Update of Date class to modify getTime method.
Date.prototype.origGetTime = Date.prototype.getTime;
Date._lastPausedAt;
Date._stopDuration = 0;
Date.prototype.getTime = function() {
    if (Date._lastPausedAt) {
        return Date._lastPausedAt.origGetTime() - Date._stopDuration;
    }
    return new Date().origGetTime() - Date._stopDuration;
};
Date.isPaused = function() {
    return Date._lastPausedAt != null;
};
Date.pause = function() {
    if (!Date._lastPausedAt) {
        Date._lastPausedAt = new Date();
    }               
};
Date.unpause = function() {
    if (Date._lastPausedAt) {
        Date._stopDuration += new Date().origGetTime() - Date._lastPausedAt.origGetTime();
        Date._lastPausedAt = null;
    }
};
Run Code Online (Sandbox Code Playgroud)

任何想法如何修改示例以减慢和加速功能?

javascript

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

在while循环定义中使用var关键字

在JavaScript for循环中,我可以var在循环定义中使用关键字:

for (var i=0; i<10; i++) ...
Run Code Online (Sandbox Code Playgroud)

我知道变量的范围i不在循环内部,而是在声明循环的函数内部.这是一个比i在循环外声明局部变量更好的表示法(最差的表示法是i在函数体的开始中声明变量):

var i;
for (i=0; i<10; i++) ...
Run Code Online (Sandbox Code Playgroud)

我的问题是关于while循环.我不能在while循环定义中声明变量,如下所示:

while((var match = re.exec(pattern)) != null) ...
Run Code Online (Sandbox Code Playgroud)

我必须var在while循环之外使用关键字.

var match;
while((match = re.exec(pattern)) != null) ...
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

javascript var while-loop

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