说我有一个Map<String, Integer>.有一种简单的方法可以从中得到Map<String, String>它吗?
通过简单,我的意思是不喜欢这样:
Map<String, String> mapped = new HashMap<>();
for(String key : originalMap.keySet()) {
mapped.put(key, originalMap.get(key).toString());
}
Run Code Online (Sandbox Code Playgroud)
而是一些像以下一样的班轮:
Map<String, String> mapped = originalMap.mapValues(v -> v.toString());
Run Code Online (Sandbox Code Playgroud)
但显然没有办法mapValues.
我在ScalaCheck 用户指南中读到它是测试Scala和Java程序的工具.
我想知道,这只是营销,还是测试仅使用Java的代码库是一个合理的想法?如果是这样,将它与Java项目集成的最佳方法是什么?
我想知道公共成员是否在包私人课程中是否可行(不被视为不良做法).我倾向于向public我的默认可见性类的成员添加关键字,以指示这些成员是类API的一部分.
我这样做只是为了提高可读性,因为在这种情况下,公共成员与没有任何访问修饰符(即包可见性)的成员具有基本相同的可见性.那是对的吗?
例:
class ModuleImplementationClass {
private int fieldA;
private String fieldB;
private void someClassInternalMethod() {
// impl
}
public int doSth() {
// method that will be called by other classes in the package
}
}
Run Code Online (Sandbox Code Playgroud) 这个问题被标记为偏离主题(显然是因为它是推荐或找到工具,库或最喜欢的异地资源),但我不明白为什么.当然不是推荐工具或类似的东西.我想知道是否有可能做的事情,如果是的话:怎么做.
假设我们有一些普通的HTML页面,并希望对它应用一些图形效果,只需一段时间,然后返回上一个表单,好像什么也没发生过一样.
我想到的效果是这样的:

是否有任何jQuery插件(因为它似乎有一个jQuery插件的所有东西)可以做到这一点?它是否可行,HTML5或CSS3(我不关心遗留浏览器支持)?
我唯一能想到的是用一些图像替换页面,然后将转换应用到该图像,但这似乎不是一个非常好的解决方案,因为图像不可能完全看起来就像用户看到的一样(因为页面内容通常是动态的).
好吧,所以CSS3有这个transform东西,但是我能看到它只提供相对简单的转换.我的扭曲和挤压情况怎么样?
我遇到与此问题完全相同的问题:Eclipse:在Scala项目中使用"Open Declaration"....
但是,我在版本3.0.2中使用了最新的Scala IDE(我已经从网站上下载了Eclipse软件包),我认为这些基本功能现在已经可以使用了,显然我的是有错误配置的东西.
我创建了一个新的Scala项目.然后我打开一些标准的库类/特性/什么,让我们说scala.util.parsing.combinator.JavaTokenParsers.源码整齐地显示,但当我尝试显示类层次结构时,我收到消息:The resource is not on the build path of a Java project.
此外,搜索引用等将不起作用.
我想这是正确配置构建路径的问题?或者也许我应该以某种方式将Scala库源附加到我的项目中?但我可以看到来源,所以他们不是已经附上了吗?
这是我的项目配置的快照:

更新:
通过设置/重置构建路径的东西,我设法摆脱了弹出警告,但是类层次结构是空的,当搜索引用时,我只能从我自己的来源点击,没有标准库.
在另一个工作区中,我也尝试随机添加和删除scala-library jar并使其几乎工作,但是类型层次结构只出现在超类中,没有任何子类(这使得它毫无用处).搜索引用工作正常.
有趣的是,我不能让它在原来的工作空间中工作......
一定要喜欢Eclipse.
说,我有一个方法:
public static <T> Collection<T> addToCollection(T element, Collection<T> collection) {
collection.add(element);
return collection;
}
Run Code Online (Sandbox Code Playgroud)
然后在尝试编译此代码时:
Integer i = 42;
Collection<Integer> result = addToCollection(i, Collections.emptyList());
Run Code Online (Sandbox Code Playgroud)
我收到一个错误Type mismatch: cannot convert from Collection<Object> to Collection<Integer>.任何人都可以解释为什么类型系统无法推断Collections.emptyList()应该是类型Collection<Integer>?
上面的例子显然是非常人为的,但我一直偶然发现这个限制,这真的很烦人.在阅读了Effective Java之后,我发现你可以简单地做Collections.<Integer>emptyList()(必须说,那对我来说这是一个很好的启示)并且让所有东西都能顺利编译,但是当你有一些复杂的类型时,那真的是令人讨厌的.
我只是想知道这是不是某种错误,还是有任何正当理由让它以这种方式工作?
java ×4
scala ×2
coding-style ×1
css3 ×1
eclipse ×1
generics ×1
html5 ×1
java-8 ×1
javascript ×1
lambda ×1
map ×1
oop ×1
scala-ide ×1
scalacheck ×1
unit-testing ×1