标签: java-8

如何让Eclipse使用JDK8编译项目?

我正在尝试新的jdk8这里有什么http://jdk8.java.net/lambda/

我能够从命令行编译和运行我的项目.

我也可以Installed JREs在Eclipse中添加这个新的JDK .但是,我无法让Eclipse使用这个JDK编译和运行项目.

我正在尝试更改设置,Project Properties/Java CompilerUse [JDK] compliance from execution environment on the 'Java Build Path'复选框已禁用,无论我点击此页面,我都无法使其正常工作.

我有Eclipse平台版本:3.7.1

有任何想法吗?

谢谢

java eclipse java-8

36
推荐指数
3
解决办法
7万
查看次数

无法使用Java 8中的DateTimeFormatter和ZonedDateTime从TemporalAccessor获取ZonedDateTime

我最近搬到Java 8,希望更容易处理本地和分区时间.

但是,在我看来,在解析一个简单的日期时,我面临一个简单的问题.

public static ZonedDateTime convertirAFecha(String fecha) throws Exception {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
            ConstantesFechas.FORMATO_DIA).withZone(
            obtenerZonaHorariaServidor());

    ZonedDateTime resultado = ZonedDateTime.parse(fecha, formatter);
    return resultado;
}
Run Code Online (Sandbox Code Playgroud)

就我而言:

  • fecha是'15/06/2014'
  • ConstantesFechas.FORMATO_DIA是'dd/MM/yyyy'
  • obtenerZonaHorariaServidor返回ZoneId.systemDefault()

所以,这是一个简单的例子.但是,解析会抛出此异常:

java.time.format.DateTimeParseException: Text '15/06/2014' could not be parsed: Unable to obtain ZonedDateTime from TemporalAccessor: {},ISO resolved to 2014-06-15 of type java.time.format.Parsed
Run Code Online (Sandbox Code Playgroud)

有小费吗?我一直在尝试解析和使用TemporalAccesor的不同组合,但到目前为止没有任何运气.

最好的祝福

java timezone datetime-format java-8 java-time

36
推荐指数
4
解决办法
3万
查看次数

具有多个参数的Java 8 Consumer在哪里?

例如在.Net中,它提供了具有不同数量和类型的参数的Action委托的几个实现(相当于Java Consumer功能接口),我期望Java 8提供了一些方法来指定Consumer不同类型的多个参数.

我知道在Java中我们不能定义具有相同名称的不同类型,这些类型在泛型类型参数中有所不同,但是提供多参数会有很好的流畅替代方案Consumer.

有没有简单的方法可以做到这一点,这不需要定义新的功能界面?

c# java lambda java-8 java-stream

36
推荐指数
3
解决办法
2万
查看次数

使用lambdas和stream按值排序映射

我是Java 8的新手,不知道如何使用流和它的排序方法.如果我有如下地图,如何按值对此地图进行排序,以便只使用Java 8获取前10个条目.

HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("a", 10);
        map.put("b", 30);
        map.put("c", 50);
        map.put("d", 40);
        map.put("e", 100);
        map.put("f", 60);
        map.put("g", 110);
        map.put("h", 50);
        map.put("i", 90);
        map.put("k", 70);
        map.put("L", 80);
Run Code Online (Sandbox Code Playgroud)

我知道在Java 8之前,我们可以将这个链接排序:https://stackoverflow.com/a/109389/4315608

java java-8 java-stream

36
推荐指数
3
解决办法
6万
查看次数

Play Framework @ routes.Assets.at编译错误

我正在使用Play 2.4.0并且我一直在尝试按照主页中的教程:https: //playframework.com/,这是针对Play 2.3以及解决了有关Ebean ORM更改的几个问题之后版本2.3到2.4,我遇到以下错误:

Compilation error

value at is not a member of controllers.ReverseAssets
Run Code Online (Sandbox Code Playgroud)

我的index.scala.html:

@(message: String)

@main("Welcome to Play") {

    <script type='text/javascript' src="@routes.Assets.at("javascripts/index.js")"></script>

    <form action="@routes.Application.addPerson()" method="post">
        <input type="text" name="name" />
        <button>Add Person</button>
    </form>

    <ul id="persons">
    </ul>
}
Run Code Online (Sandbox Code Playgroud)

我的routes档案:

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET         /                    controllers.Application.index()

POST        /person              controllers.Application.addPerson()

GET         /persons             controllers.Application.getPersons()

# Map static resources from the /public …
Run Code Online (Sandbox Code Playgroud)

java playframework java-8 playframework-2.4

36
推荐指数
1
解决办法
2万
查看次数

从对象列表Java 8获取具有max date属性的对象

我有一类称为Contact具有Date lastUpdated;可变的.

我想拉出Contact一个List<Contact>有max lastUpdated变量的东西.

我知道这可以通过编写自定义比较器并使用来完成Collections.max,但我想知道是否有一种方法可以在Java 8中完成,不需要使用自定义比较器,因为我只想用一个我的代码中只有一个位置的最大日期,并且Contact该类不应始终使用该lastUpdated变量来比较实例.

java collections java-8

36
推荐指数
3
解决办法
5万
查看次数

Jack(Java Android编译器工具包)将如何影响Scala开发人员

现在宣布杰克谷歌澄清了Java与Android相关的可预见的未来.但是对Scala和其他基于JVM的语言开发人员有什么影响.特别是:

  1. 由于自己的编译器产生Java字节码,Scala确实很神奇.但Jack工具链不处理字节码.生成的字节码会获得Jack处理的任何优化优势吗?
  2. 从Scala 12开始,仅支持Java 8+.那就是生成的字节码也是Java 8+.杰克可以使用Java 8字节码(没有或有限制)?
  3. 可以使用新支持的Java 8功能来开发较旧的Android版本(minSdkVersion <'N'),还是应该为每个Java版本维护单独的分支?(文件中不清楚).

所有这些问题归结为一个问题:未来可以将Scala用于Android开发而不会牺牲新Scala功能和新Android工具链的优势吗?

相关阅读:

请在评论或答案中分享相关链接

相关问题:

有关:

请投票给Jack工具功能请求:


编辑:

我试图推理(不回答)我的问题,希望如果我错了,专家会纠正我.

下面是一个假设的Jack构建流程,其中包含一些额外的块,这些块是根据我的逻辑和我从可用文档中学到的内容添加的.

基本假设是Dalvik支持Java 7字节码指令.如果这是正确的Java 8指令不能直接传递给Dalvik,它们应该以某种方式转换为Java 7.(可能类似于Scala编译器总是这样做).

问题是转型发生在哪里?似乎Jill现在不能处理Java 8字节码,因此可能发生在假设流程的块(3)中.如果这是正确的,那么只有Java源项目文件需要进行转换,并且对第二个问题的回答是 - 否则,在Jill能够执行之前,不能使用库中的Java 8类(如果可能的话) .那就是我们不能使用Scala 12+.

如果在块(6)中执行所有代码优化而不是对第一个问题的答案是 - 是.转换为库.jar的Scala代码可以从Jack优化中受益.但初步应将其转换为.jayce(类似AST的表示),这将增加构建时间.

最后,Jack生成.dex Dalvik字节码,以保持与较旧的Dalvik运行时兼容(ART也使用Dalvik字节码).因此,三维问题的答案是:是的,可以使用Java 8功能.但仅限于项目Java源代码.App仍与任何运行时兼容.但是由于转换为Java 7(Dalvik字节码),Java 8的优势被删除.


在此输入图像描述

android scala java-8

36
推荐指数
1
解决办法
1662
查看次数

将一个系列分成两个不同的系列的最佳方法是什么?

我有一组数字:

 Set<Integer> mySet = [ 1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我想把它分成两组赔率和赔率.

我的方法是使用过滤器两次:

Set<Integer> set1 = mySet.stream().filter(y -> y % 2 == 0).collect(Collectors.toSet())
Set<Integer> set2 =mySet.stream().filter(y -> y % 2 != 0).collect(Collectors.toSet())
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个解决方案,因为我经历了整套两次.

有没有更聪明的方法呢?

java filter java-8 data-partitioning java-stream

36
推荐指数
4
解决办法
1963
查看次数

Java 8中新引入的Arrays.parallelPrefix(...)如何工作?

我遇到了Java 8中引入的Arrays.parallelPrefix.

此重载方法以累积方式对输入数组的每个元素执行操作.例如来自docs:

使用提供的函数并行地累积给定数组的每个元素.例如,如果数组最初保持[2,1,0,3]并且操作执行加法,则在返回时数组保持[2,3,3,6].对于大型数组,并行前缀计算通常比顺序循环更有效.

那么,parallel当一个术语的操作依赖于前一个术语的操作结果时,Java如何实现这个任务,等等?

我尝试自己完成代码并且他们确实使用了ForkJoinTasks,但是它们如何合并结果以获得最终数组并不是那么简单.

java arrays java-8

36
推荐指数
2
解决办法
1518
查看次数

为什么Optional.map使此分配有效?

Optional<ArrayList<String>> option = Optional.of(new ArrayList<>());

Optional<ArrayList<?>> doesntWork = option;

Optional<ArrayList<?>> works = option.map(list -> list);
Run Code Online (Sandbox Code Playgroud)

第一次尝试分配不会编译,而第二次则带有mapdo。感觉map应该没有实际完成任何事情,但是由于某种原因,这使我Optional<ArrayList<String>>变成了Optional<ArrayList<?>>。是否存在某种隐式强制转换?

java generics optional java-8

36
推荐指数
2
解决办法
1451
查看次数