在java8中是否有lambdas的默认变量占位符,比如_
scala?
这是scala示例:
case class Person(name:String, age:Int)
val people = List(Person("Jack", 35), Person("Arjun", 16), Person("Sasha", 13), Person("Sara", 8))
val teens = people.filter(_.age >= 13).filter(_.age <= 19)
Run Code Online (Sandbox Code Playgroud)
假设定义了一个Person类,这里是java示例:
List<Person> people = Arrays.asList(new Person("Jack", 35), new Person("Arjun", 16), new Person("Sasha", 13), new Person("Sara", 8));
List<Person> teens = people.stream()
.filter(p -> (p.getAge() >= 13 && p.getAge() <= 19))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
有没有办法在最后一行编写过滤器而不定义变量p
.显然这不是一个大问题,但只是好奇.我也明白我可以在Person类中编写一个方法isTeenager
并将其传递给lambda,但这也不是重点.只想知道java8中是否有lambdas的默认变量占位符.
我想使用后退导航动画
[self.navigationController popViewControllerAnimated:YES]
Run Code Online (Sandbox Code Playgroud)
将自定义按钮添加到导航栏.
由于我不希望看到后退按钮,我已将其隐藏起来 self.navigationItem.hidesBackButton = YES;
但是在后面的动画中,在ios7(不是ios6)上可以看到3个点在导航栏中滑动.它们没有出现,self.navigationItem.hidesBackButton = NO;
但当然可以看到按钮.
有没有人有任何想法让它们不出现?
我已成功将图像文件上传到WebContent\resources\uploads\image.jsp
.但我在使用MockMvc测试时遇到了问题.当我运行测试用例时,我发现未找到异常文件并拒绝访问.
控制器看起来像这样:
@RequestMapping(value="/AddContacts", method=RequestMethod.POST)
public @ResponseBody String addContacts(ContactBean cb,HttpServletRequest request,HttpServletResponse response,@RequestParam("upload") MultipartFile file) throws IllegalStateException, IOException
{
String error=cb.validate();
if(error.equals("")){
Model m=new Model();
String ret=m.addData(cb);
System.out.println("Contact Bean: "+cb);
if(ret.equals("DBFAIL")){
response.setStatus(500);
}
else if(ret.equals("EXIST")){
response.setStatus(409);
}
else{
response.setStatus(200);
/* to upload a file */
if(file != null && file.getSize() > 0){
System.out.println("File name: "+file.getOriginalFilename());
String dir="C:\\web_latest\\Admin_FileUpload_29_01_15\\WebContent\\resources\\uploads\\"+cb.getName()+"_"+cb.getId()+"\\";
//String dir="C:\\Upload\\"+cb.getName()+"_"+cb.getId()+"\\";
File directory = new File(dir);
if (directory.exists()) {
System.out.println("Directory already exists ...");
}
else { …
Run Code Online (Sandbox Code Playgroud) 在
<tr>
<td class="f4 trimJustl"
valign="middle"
style="color:#ffffff;"
artcolor="#ffffff">Create Network Container</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我想找到td
文本等于创建网络容器的元素.我创建了XPath
//td[text()='Create Network Container']
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我也试过了
//td[contains(text(),'Create Network Container')]
Run Code Online (Sandbox Code Playgroud)
但这也不适合我.
当我创建一个新项目时,我完成了步骤并单击"完成"并等待项目打开.但相反,我看到一个错误:
我无法解决这个问题.
出于调试目的,我试图Predicate
在Java 8中创建lambda表达式的字符串表示(特别是s,尽管对其他lambda表达式也很有趣).我的想法是这样的:
public class Whatever {
private static <T> String predicateToString(Predicate<T> predicate) {
String representation = ... // do magic
return representation;
}
public static void main(String[] args) {
System.out.println(Whatever.<Integer>predicateToString(i -> i % 2 == 0));
}
}
Run Code Online (Sandbox Code Playgroud)
输出将是i -> i % 2 == 0
(或逻辑等价的东西).这个toString()
方法似乎没有任何帮助,输出就是这样的com.something.Whatever$$Lambda$1/1919892312@5e91993f
(我想这是预期的,因为toString()
它没有被覆盖).
我不确定这样的事情是否可能,例如反射,到目前为止我当然无法找到任何东西.有任何想法吗?
我已经编写了许多测试,不仅分为不同的类,而且根据我们正在测试的应用程序的哪个区域划分为单独的子包.所以,我的包结构看起来有点像这样:
my.package.tests
my.package.tests.four
my.package.tests.one
my.package.tests.three
my.package.tests.two
Run Code Online (Sandbox Code Playgroud)
在my.package.tests
包中我有一个父类,子包中的所有测试都是一到四个扩展.现在,我想选择运行测试的顺序; 不在类中(这似乎可以通过FixMethodOrder注释)但是类或子包本身的顺序(所以那些在子包中one
,然后在那些中two
,等等).一些测试类使用参数化运行器,以防万一有所不同.测试成功不需要选择顺序,它们是相互独立的; 然而,对它们进行排序以反映通常使用程序的各个部分的顺序是有帮助的,因为它使分析更容易一些.
现在,理想情况下我想要一些配置文件告诉JUnit应该执行哪些测试顺序; 不过我猜它不会那么容易.我在这里有哪些选项,最简单的选项是什么?我也更喜欢只需列出子包,而不是包中的各种类,甚至是类中的测试函数.
我正在使用Java 1.6.0_26(我在这里没有选择)和JUnit 4.11.
我用Go编程语言编程.
假设有一个interface{}
包含整数数组的变量.我如何转换interface{}
回[]int
?
我试过了
interface_variable.([]int)
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
panic: interface conversion: interface is []interface {}, not []int
Run Code Online (Sandbox Code Playgroud) 我没有长时间使用java,所以我不确定还有什么要寻找的.我希望有人可以指出我正确的方向.
目标: 我想使用查找表,存储为文本文件.但我不想使用绝对路径,因为最后我想打包一个版本并能够从任何位置调用它(文本文件将包含在打包版本中).
当前设置: 我将文本文件放在一个名为"resources"的文件夹中(因为从阅读有关java的教程,我得到了印象,这是我应该把它用来维护一个更好的结构化项目).
在根包文件夹中,我有一个类(MainClass.java),它在子包中调用另一个类(LookUpClass.java).文件夹设置如下:
我写了一个方法LookUpClass.java
,就是从资源中的查找表中检索某一行.为了检索文件并读出某一行,我用了
// Gets respective line from LUT
private static String getLineFromLUT(int line) {
URL url = LookUpClass.class.getClass().getResource("/LookUpTables/LookUpTable1.txt");
File file = new File(url.toURI());
BufferedReader br = new BufferedReader(new FileReader(file));
for (int i = 0; i < line; ++i)
br.readLine();
return br.readLine;
}
Run Code Online (Sandbox Code Playgroud)
在我的项目结构中,"java"文件夹被标记为"source",而"resources"被标记为"resources".
我的测试设置非常简单:
public static void main(String[] args) throws URISyntaxException, IOException {
String c = LookUpClass.getLineFromLUT(5);
System.out.println("Color of line 5: " …
Run Code Online (Sandbox Code Playgroud) java ×4
java-8 ×2
lambda ×2
getresource ×1
go ×1
ios ×1
java-6 ×1
junit ×1
junit4 ×1
linux ×1
mockmvc ×1
packages ×1
predicates ×1
spring ×1
tostring ×1
ubuntu-11.10 ×1
unit-testing ×1
xpath ×1