我在这里有一个真正的大脑放屁.我正在使用Play Framework.我有一个方法,它采用地图并将其转换为HTML选择元素.我有一个单行程序来获取一个对象列表并将其转换为两个对象字段的地图,id并且name.但是,我是一名Java程序员,我的Scala很弱,而且我只是忘记了我是如何做到这一点的语法.
我有类似的东西
organizations.all.map {org => /* org.prop1, org.prop2 */ }
Run Code Online (Sandbox Code Playgroud)
任何人都可以完成评论部分吗?
我有一个 List的StringS和我想trim()的列表中的每个元素.
目前,我正在使用a ArrayList,在元素中进行简单循环,并将修剪后的元素添加到返回列表中,如下所示:
int listLen = listToTrim.size();
List<String> trimmedList = new ArrayList<String>( listLen );
for ( int i = 0; i < listLen; i++ ) {
trimmedList.add( listToTrim.get( i ).trim() );
}
return trimmedList;
Run Code Online (Sandbox Code Playgroud)
对于大型列表,会有更有效的方法吗?
自上周五以来,我的Play Framework应用程序需要花费15分钟来编译,因为解析依赖项的时间非常长.
依赖项驻留在repo.typesafe.com,repo1.maven.org和其他几个,包括Deadbolt,托管在GitHub Pages(http://schaloner.github.com)上,所以我不确定它是否已关闭到一个外部回购.
我不能为我的生活找出导致这种情况的原因.有人能告诉我从哪里开始排除故障吗?
编辑:进一步的信息 -我已经在一个新的虚拟机(Ubuntu 12.04)上测试了一个新的Play应用程序和一个新的Play实例,我从Maven 1添加了mysql jdbc连接器,从GitHub页面添加了Deadbolt .它似乎挂在其中一个回购并没有超时,但我不知道如何找出哪一个.我在plugins.sbt文件中注释掉了TypeSafe repo,但问题仍然存在.现在把我的头发拉出来.
编辑2:在存在的Bug 2.0和2.1分支机构.无法复制2.2.目前,看起来像添加已发布的文件[Play directory]/repository/cache停止播放尝试每次都解决所有问题.
dependencies dependency-management playframework playframework-2.1
有问题的模式涉及一个抽象类,它有一个方法可以完成一些工作,然后调用一个抽象方法.该类通过在匿名类中进行子类化并指定抽象方法的行为来使用.一个例子:
/* The abstract class */
abstract class WebCall {
String url;
WebCall(String url) {
this.url = url;
}
void call() {
// Make call to url
// Callback
if (worked) {
success();
} else {
failure();
}
}
protected abstract void success();
protected abstract void failure();
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用这个类:
new WebCall(someUrl) {
@Override
protected void success() {
// Implementation
}
@Override
protected void failure() {
// Implementation
}
}.call();
Run Code Online (Sandbox Code Playgroud)
一个真实世界的例子是来自Android的AsyncTask.这种模式有一个共同的名称吗?
我正在尝试获取表单中一组单选按钮的值。我正在使用代码
this.type = form['template-type'].value;
Run Code Online (Sandbox Code Playgroud)
这适用于 Chrome 和 Firefox。但是,当我在 IE 11 中运行它时,它返回undefined.
我已经使用以下 jQuery 代码来获取值:
$(form['template-type']).filter(':checked').val()
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常。我的问题是:IE11 中是否存在获取 RadioNodeList 值的本机方法?MDN 文章提到 IE 实现了 RadioNodeList API,我找不到任何关于它不适用于 Google 的帖子。
html javascript jquery internet-explorer internet-explorer-11
如果我有一系列的方法调用,每个用于下一次调用的值,我应该将它们存储在局部变量中,如下所示:
DynamicForm filledForm = Form.form().bindFromRequest();
String shareIdStr = filledForm.get("data[shareId]");
UUID shareId = UUID.fromString(shareIdStr);
Share share = Share.find.byId(shareId);
Run Code Online (Sandbox Code Playgroud)
或者作为单个调用链,如下所示:
Share share = Share.find.byId(UUID.fromString(Form.form().bindFromRequest().get("data[shareId]")));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,唯一再次使用的值是share.也许答案介于两者之间,或者是完全不同的东西.你怎么看?
例如,如果我有一个类似的界面
public interface Partition<E> {
Set<E> getIncluded();
Set<E> getExcluded();
}
Run Code Online (Sandbox Code Playgroud)
我这样实现它
public class ImmutablePartition<E> implements Partition<E> {
private final ImmutableSet<E> included;
private final ImmutableSet<E> excluded;
ImmutablePartition(Set<E> included, Set<E> excluded) {
this.included = ImmutableSet.copyOf(included);
this.excluded = ImmutableSet.copyOf(excluded);
}
@Override
public Set<E> getIncluded() {
return included;
}
@Override
public Set<E> getExcluded() {
return excluded;
}
}
Run Code Online (Sandbox Code Playgroud)
我真的实现了原始界面的精神吗?如果客户端代码Set<E>返回,尝试操纵它,并获得一个UnsupportedOperationException,肯定会首先失败实现Set<E>接口的目的?
此问题适用于实现标准集合接口的所有Guava Immutable*集合java.util.
编辑:正如我在下面提醒的那样,Collection界面指定了UnsupportedOperationException不支持的变异方法.除非另有说明,我觉得期望仍然是返回的集合将允许修改.如果我想返回一个不可变集合,我会将返回类型指定为不可变类,如果可能的话.
我想我的问题是:通常的假设(根据我的经验)是返回的集合是可变的,实现一个返回一般集合并返回一个不可变集合的接口方法是否合理?
java ×3
coding-style ×1
collections ×1
dependencies ×1
guava ×1
html ×1
immutability ×1
interface ×1
javascript ×1
jquery ×1
list ×1
map ×1
scala ×1