Questions tagged «java-8»

对于2014年3月18日发行的Java平台的第8版(内部版本1.8)特定于Java 8的问题,请使用此标记。在大多数情况下,您还应该指定java标记。

12
如何否定方法引用谓词
在Java 8中,可以使用方法引用来过滤流,例如: Stream<String> s = ...; long emptyStrings = s.filter(String::isEmpty).count(); 有没有一种方法可以创建一个与现有引用相反的方法引用,例如: long nonEmptyStrings = s.filter(not(String::isEmpty)).count(); 我可以创建not如下所示的方法,但我想知道JDK是否提供类似的方法。 static <T> Predicate<T> not(Predicate<T> p) { return o -> !p.test(o); }
330 java  predicate  java-8  negate 

17
Javadoc标记不完整时,Maven无法在Java 8中工作
自从我使用Maven以来,我已经能够在本地存储库中构建并安装具有不完整Javadoc标记(例如,缺少参数)的项目。 但是,由于我迁移到Java 8(1.8.0-ea-b90),因此Maven对缺少文档标签的要求绝对严格,并在尝试构建或安装Javadoc不在其中的项目时向我展示许多与Javadoc问题有关的Javadoc错误。 “完善”。我试图编译并安装在本地存储库中的某些项目是我无法控制的第三方项目。因此,在我的情况下,仅修复所有这些项目中的所有Javadocs的变通办法似乎不可行。 这是我mvn clean package install在项目中执行时看到的输出的一小部分: [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 9.026s [INFO] Finished at: Mon Apr 08 21:06:17 CEST 2013 [INFO] Final Memory: 27M/437M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9:jar (attach-javadocs) on project jpc: MavenReportException: Error while creating archive: [ERROR] …

13
从Java 8流中断还是返回forEach?
当在上使用外部迭代时,Iterable我们使用break或return通过增强的for-each循环进行以下操作: for (SomeObject obj : someObjects) { if (some_condition_met) { break; // or return obj } } 我们如何break或在Java 8 lambda表达式中return使用内部迭代,例如: someObjects.forEach(obj -> { //what to do here? })
312 java  foreach  lambda  java-8 

9
“ Java并发实践”是否仍然有效?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 是Java并发在实践中是否仍然有效?我想知道本书中描述的思想,概念和实现是否仍然与最新的Java版本兼容。 我问,因为最新版本是2006年完成的。



17
如何从Java 8流中引发CHECKED异常?
如何从Java 8流/ lambda中抛出CHECKED异常? 换句话说,我想使代码像这样编译: public List<Class> getClasses() throws ClassNotFoundException { List<Class> classes = Stream.of("java.lang.Object", "java.lang.Integer", "java.lang.String") .map(className -> Class.forName(className)) .collect(Collectors.toList()); return classes; } 该代码无法编译,因为Class.forName()上面的方法抛出ClassNotFoundException,因此。 请注意,我不想将已检查的异常包装在运行时异常中,而是抛出已包装的未检查的异常。我想抛出被检查的异常本身,而又不添加丑陋的try/ catches流。



11
Java 8的Optional.ifPresent和if-not-Present功能样式?
在Java 8中,Optional如果对象不存在,我想对其进行处理,如果对象不存在,则对它进行处理。 if (opt.isPresent()) { System.out.println("found"); } else { System.out.println("Not found"); } 但是,这不是“功能样式”。 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; }); …

13
用于可选
现在已经使用Java 8超过6个月左右,我对新的API更改感到非常满意。我仍然不自信的一个领域是什么时候使用Optional。我似乎在想要在可能存在的null任何地方都使用它而根本不在任何地方使用之间切换。 我可以使用它的情况似乎很多,而且我不确定它是否会带来好处(可读性/空安全性)或仅仅是造成额外的开销。 因此,我有一些示例,我会对社区是否Optional有益的想法感兴趣。 1-作为方法可以返回时的公共方法返回类型null: public Optional<Foo> findFoo(String id); 2-当参数可以是null: public Foo doSomething(String id, Optional<Bar> barOptional); 3-作为bean的可选成员: public class Book { private List<Pages> pages; private Optional<Index> index; } 4-在Collections: 总的来说,我不认为: List<Optional<Foo>> 添加任何内容-尤其是因为可以filter()删除null值等,但是Optionalin集合有什么好的用处吗? 我错过了任何情况吗?
271 java  java-8  optional 

10
Java 8:两个LocalDateTime之间以多个单位表示的差异
我正在尝试计算两者之间的差异LocalDateTime。 输出必须为格式y years m months d days h hours m minutes s seconds。这是我写的: import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.Period; import java.time.ZoneId; public class Main { static final int MINUTES_PER_HOUR = 60; static final int SECONDS_PER_MINUTE = 60; static final int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR; public static void …

3
Java 8日期时间API(java.time)与Joda-Time之间的区别
我知道有关于java.util.Date和Joda-Time的问题。但是经过一番挖掘之后,我找不到关于java.time API(由JSR 310定义的Java 8中的新功能)和Joda-Time之间的区别的线索。 我听说Java 8的java.time API更加干净,并且可以完成比Joda-Time更多的事情。但是我找不到比较两者的例子。 Joda-Time无法做到的java.time可以做什么? java.time比Joda-Time有什么优势? java.time的性能更好吗?

9
仅从Android N开始支持默认接口方法
我已升级到android studio 3.1,但出现以下错误: Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner) Message{kind=ERROR, text=Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner), sources=[Unknown source file], tool name=Optional.of(D8)} 这是我的gradle配置: compileSdkVersion 27 //buildToolsVersion '27.0.3' defaultConfig { minSdkVersion 16 targetSdkVersion 27 multiDexEnabled true …
262 android  java-8  kotlin 

9
为什么Stream <T>不实现Iterable <T>?
在Java 8中,我们有类Stream &lt;T&gt;,它奇怪地有一个方法 Iterator&lt;T&gt; iterator() 因此,您可能希望它实现接口Iterable &lt;T&gt;,而该接口正是需要此方法,但事实并非如此。 当我想使用foreach循环遍历Stream时,我必须做类似的事情 public static Iterable&lt;T&gt; getIterable(Stream&lt;T&gt; s) { return new Iterable&lt;T&gt; { @Override public Iterator&lt;T&gt; iterator() { return s.iterator(); } }; } for (T element : getIterable(s)) { ... } 我在这里想念什么吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.