我安装了JDK 8,当我输入cmd时java -version我得到1.8,浏览器在运行需要Java 1.8的applet时,它说JRE 1.8不可用,使用最新的JDK运行它.
当我在浏览器中检查插件时,所有指向JRE 7,Chrome和IE.在Java控制面板中,我看到列出了JDK 8.
我正在检查JDK 8 API和内部Function接口我注意到身份功能
static <T> Function<T, T> identity() {
return t -> t;
}
Run Code Online (Sandbox Code Playgroud)
这解决方法:
R apply(T t);
Run Code Online (Sandbox Code Playgroud)
在同一个Function界面声明.
问题是t -> t部分有效的原因.
如果我们根据熟悉的匿名内部类扩展这个表达式
new Function<String, String>() {
@Override
String apply(String t) {
t; // Oops, compilation error
}
}
Run Code Online (Sandbox Code Playgroud)
是t -> t一种捷径t -> { return t; }吗?
请考虑以下代码:
public static void main(String[] args) {
String pattern = "MMM dd, yyyy HH:mm:ss a z";
// joda-time
DateTime dt = DateTime.now();
System.out.println(dt.toString(pattern));
// java.time
ZonedDateTime ldt = ZonedDateTime.now();
System.out.println(ldt.toString(pattern)); // doesn't exist
System.out.println(ldt.format(DateTimeFormatter.ofPattern(pattern)));
}
Run Code Online (Sandbox Code Playgroud)
joda-time类(DateTime,LocalDate等)包含一个toString接受所需格式的String的方法.这是一种非常方便的方法.然而,java-8实现省略了这种方法.相反,你需要打电话format(DateTimeFormatter formatter).
一个小抱怨,当然.但我的问题是:是否有任何原因从java.time中省略了这个?将我的应用程序从joda-time转换为java.time将会因为这个小小的遗漏而变得更加困难.但是,如果有合理的原因,我很乐意.并不是说你在这里缓和我的担忧,但我想我会问以防万一.
编辑:对于选民来说,这不是一个基于意见的问题.任何熟悉joda-time/java.time内部工作的人以及他们以某种方式发展的动机都有资格回答这个问题,即使他们从未这样做过.
就像C#LINQ Enumerable一样#First with delegate方法和Scala List #ref方法,在Java8中,是否有一种方法可以找到列表中第一个匹配的元素?
考虑下面的代码,
interface TestInter {
public void abc();
}
class DemoStatic {
public static void testStatic(String abc) {
System.out.println(abc);
}
public void runTest () {
// Using lambda expression.
String str = "demo string" ;
TestInter demo1 = () -> DemoStatic.testStatic(str);
demo1.abc();
// Using method reference.
TestInter demo2 = DemoStatic::testStatic; // This line is not compiling.
demo2.abc();
}
}
Run Code Online (Sandbox Code Playgroud)
如果这样的答案中描述的方法的参数将被消除,我们可以调用该testStatic方法作为TestInter接口实体的主体.abc()testStaic()
但在这种情况下,我们如何为参数化方法编写方法参考testStatic?
我正在尝试传递一个抛出已检查异常的方法引用:
Files.list((Paths.get("/some/path"))).map(Files::readAllLines);
Run Code Online (Sandbox Code Playgroud)
如何处理此异常(不将方法引用包装在处理exeption的方法中).
实际上,我正在经历Java 8中的新事物.有许多新的东西已经到来,即Lambda表达式,Default方法等等.
其中一个功能是重复注释,
"重复注释提供了对同一声明或类型使用多次应用相同注释类型的能力"
在这里,我可以理解我可以多次使用相同的注释.
我正在尝试了解此添加的实际/实际用法.并试图理解为什么他们错过了它直到java 7.
我的css代码看起来像这样但它仍然不起作用.滚动窗格?
.scroll-pane:corner > .viewport {
-fx-background-color : #191A19;
}
Run Code Online (Sandbox Code Playgroud)
我的语法有问题,还是整个视图端口问题不允许我编辑的任何其他方面
既然Nashorn在Java 8中可用,是否有办法用JavaScript文件编写JavaFX应用程序?我在哪里可以找到更多关于此的信息或视频?你会怎么编译它?
或者是否需要一组最小的bootstrapping文件?
我正在尝试获取一个数字列表,过滤掉偶数,然后对这些偶数进行平方,以便原始列表中的偶数是平方的.这是我的代码:
ArrayList<Long> nums2 = new ArrayList<Long>();
for(long i = 0; i < 100000; i++)
nums2.add(i);
nums2.stream().filter(p -> p%2 == 0).forEach(p -> p = (long)Math.pow(p, 2));
Run Code Online (Sandbox Code Playgroud)
尝试了其他一些事情,但这是我到目前为止的地方