什么是实现注释的有效用例?
在设计主要基于注释的配置系统时,我偶尔需要创建实现代码生成或编程配置注释的类.
替代方案涉及将注释中包含的数据镜像到DTO中,这似乎是一种开销.
这是一个例子:
public enum IDType {
LOCAL,
URI,
RESOURCE;
}
@Documented
@Target( { METHOD, FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Id {
/**
* @return
*/
IDType value() default IDType.LOCAL;
}
Run Code Online (Sandbox Code Playgroud)
随着实施
public class IdImpl implements Id{
private final IDType idType;
public IdImpl(IDType idType){
this.idType = idType;
}
@Override
public IDType value() {
return idType;
}
@Override
public Class<? extends Annotation> annotationType() {
return Id.class;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了编译器警告,但它似乎是许多用例的有效工具.
以上示例的警告是
注释类型Id不应用作IdImpl的超接口
编辑:
我刚从Guice找到这个例子:
bind(CreditCardProcessor.class)
.annotatedWith(Names.named("Checkout"))
.to(CheckoutCreditCardProcessor.class);
Run Code Online (Sandbox Code Playgroud)
是否有一个快捷方式来过滤Map,只保留给定Set中包含密钥的条目?
这是一些示例代码
scala> val map = Map("1"->1, "2"->2, "3"->3)
map: scala.collection.immutable.Map[java.lang.String,Int] = Map(1 -> 1, 2 -> 2, 3 -> 3)
scala> map.filterKeys(Set("1","2").contains)
res0: scala.collection.immutable.Map[java.lang.String,Int] = Map(1 -> 1, 2 -> 2)
Run Code Online (Sandbox Code Playgroud)
我正在寻找比这短的东西.
是否有相当于Java 的Reactive Extensions(.NET)?
关于Rx(Reactive Extensions)
Rx是一个使用可观察集合组成异步和基于事件的程序的库.
我知道规则引擎,比如来自JBOSS的Drools,但还有其他一些更接近Microsoft .NET方法的方法吗?
在Java代码中执行空检查,并且为空值抛出IllegalArgumentExceptions时,您使用什么类型的消息模板?
我们倾向于使用这样的东西
public User getUser(String username){
if (username == null){
throw new IllegalArgumentException("username is null");
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
更好的是:"为空"或"为空",为什么?
对我来说,"无效"感觉更自然.
Scala Web应用程序中Web安全性的哪些好框架选择.我们想尝试Scala Web开发,但还没有找到好的Scala Web应用程序安全框架.
从Java方面来说,我至少知道Spring Security和Apache Shiro.
您是否具有Scala Web应用程序安全框架或Scala上下文中的Spring Security/Apache Shiro的经验?
我正在努力为Scala创建一个SQL DSL.DSL是Querydsl的扩展,Querydsl是一种流行的Java查询抽象层.
我现在正在努力解决以下非常简单的表达方式
user.firstName == "Bob" || user.firstName == "Ann"
Run Code Online (Sandbox Code Playgroud)
由于Querydsl已经支持可以在这里使用的表达式模型,因此我决定提供从Proxy对象到Querydsl表达式的转换.为了使用代理,我创建了一个这样的实例
import com.mysema.query.alias.Alias._
var user = alias(classOf[User])
Run Code Online (Sandbox Code Playgroud)
通过以下隐式转换,我可以将代理实例和代理属性调用链转换为Querydsl表达式
import com.mysema.query.alias.Alias._
import com.mysema.query.types.expr._
import com.mysema.query.types.path._
object Conversions {
def not(b: EBoolean): EBoolean = b.not()
implicit def booleanPath(b: Boolean): PBoolean = $(b);
implicit def stringPath(s: String): PString = $(s);
implicit def datePath(d: java.sql.Date): PDate[java.sql.Date] = $(d);
implicit def dateTimePath(d: java.util.Date): PDateTime[java.util.Date] = $(d);
implicit def timePath(t: java.sql.Time): PTime[java.sql.Time] = $(t);
implicit def comparablePath(c: Comparable[_]): PComparable[_] = $(c);
implicit …Run Code Online (Sandbox Code Playgroud) 您有什么体验MongoDB的优秀Java API ?
我正在寻找基于注释的Java POJO映射到MongoDB资源和一个体面的查询抽象层的东西.