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_DTO和ObjectA_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本地化框架.默认的本地化框架对我来说还不够.
理想情况下,我正在寻找具有以下功能的本地化框架:
如果你了解一些好的本地化框架,请给我回音.如果您认为我的要求有些不对,请告诉我.
我实现了一个如何在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 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)
难道我做错了什么?