在Java 8中,如果它存在,我想对Optional对象做些什么,如果它不存在,则做另一件事。 if (opt.isPresent()) { System.out.println("found"); } else { System.out.println("Not found"); } 不过,这不是一种“function性风格”。 Optional有一个ifPresent()方法,但是我无法链接一个orElse()方法。 因此,我不能写: opt.ifPresent( x -> System.out.println("found " + x)) .orElse( System.out.println("NOT FOUND")); 回复@assylias,我不认为Optional.map()适用于以下情况: opt.map( o -> { System.out.println("while opt is present…"); o.setProperty(xxx); dao.update(o); return null; }).orElseGet( () -> { System.out.println("create new obj"); dao.save(new obj); return null; }); 在这种情况下,当opt出现时,我更新它的属性并保存到数据库中。 当它不可用时,我创build一个新的obj并保存到数据库。 注意在两个lambda中,我必须返回null 。 但是,当opt出现时,两个lambda将被执行。 […]
什么是一些情况下,我可以使用Collections.emptyMap() ? 文档说我可以使用这个方法,如果我想我的集合是不可变的。 为什么我要一个不可变的空集合? 有什么意义?
我有HashMap称为testMap其中包含String, String 。 HashMap<String, String> testMap = new HashMap<String, String>(); 迭代映射时,如果value与指定的string匹配,我需要从映射中删除键。 即 for(Map.Entry<String, String> entry : testMap.entrySet()) { if(entry.getValue().equalsIgnoreCase("Sample")) { testMap.remove(entry.getKey()); } } testMap包含"Sample"但我无法从HashMap删除密钥。 反而得到错误: "Exception in thread "main" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(Unknown Source) at java.util.HashMap$EntryIterator.next(Unknown Source) at java.util.HashMap$EntryIterator.next(Unknown Source)"
我需要一个监视器类来定期检查给定的HTTP URL是否可用。 我可以使用Spring TaskExecutor抽象来关心“常规”部分,所以这不是主题。 问题是: 在java中ping一个URL的首选方法是什么? 这是我现在的代码作为一个起点: try { final URLConnection connection = new URL(url).openConnection(); connection.connect(); LOG.info("Service " + url + " available, yeah!"); available = true; } catch (final MalformedURLException e) { throw new IllegalStateException("Bad URL: " + url, e); } catch (final IOException e) { LOG.info("Service " + url + " unavailable, oh […]
我有一个unit testing需要使用位于src/test/resources/abc.xml XML文件。 什么是最简单的方法来获取文件的内容到String ?
完全重复: 在Java中结合path 我想知道在Java中是否有这样的方法。 以此片段为例: // this will output a/b System.out.println(path_join("a","b")); // a/b System.out.println(path_join("a","/b");
关于LoaderManager的initLoader和restartLoader函数之间的区别我完全失去了: 他们都有相同的签名。 restartLoader不存在(“启动一个新的或重新启动一个现有的Loader在这个pipe理器”),也会创build一个加载器。 这两种方法有一些关系吗? 调用restartLoader是否总是调用initLoader ? 我可以调用restartLoader而不必调用initLoader ? 是否保存两次调用initLoader刷新数据? 我应该什么时候使用其中的一个(重要!)为什么?
我试图从Android的资产目录中使用InputStream逐行读取文本文件。 我想将InputStream转换为BufferedReader以便能够使用readLine()。 我有以下代码: InputStream is; is = myContext.getAssets().open ("file.txt"); BufferedReader br = new BufferedReader (is); 第三行删除以下错误: 这条线上有多个标记 构造函数BufferedReader(InputStream)是未知的。 我想在C中做的事情是这样的: StreamReader file; file = File.OpenText ("file.txt"); line = file.ReadLine(); line = file.ReadLine(); … 我做错了什么,或者我该怎么做? 谢谢!
我需要一个“接受参数的Runnable”,但我知道这样的runnable并不存在。 这可能表明我的应用程序devise中的根本缺陷和/或疲倦的大脑中的精神障碍,所以我希望在这里find一些关于如何完成如下内容的build议, 而不违反基本的OO原则: private Runnable mOneShotTask = new Runnable(String str) { public void run(String str) { someFunc(str); } }; 任何想法如何完成上面的东西?
我们使用自制包装器后面的log4j。 我们现在计划使用更多的function。 我们应该更新到logback? (我的意思是框架不像SLF4J那样)