首页 > TAG信息列表 > java-9

java-将List.of用于具有单个元素而不是Collections.singletonList的不可变列表

Java 9引入了工厂方法来使用List.of创建不可变列表. 哪个更适合创建一个元素的不可变列表? List<String> immutableList1 = List.of("one"); List<String> immutableList2 = Collections.singletonList("one"); 解决方法:首选使用工厂方法 List<String> immutableList1 =

Maven:确保跨Java版本兼容性

我当前的任务是确保给定的Java项目从版本6到版本9在Java(JRE)上运行.Maven有什么方法可以做到这一点? 我想配置maven-compilter-plugin是其中的一部分.应该是 <source>1.6</source> 确保不使用更高版本的功能?那么< target>呢? Maven应该与哪个Java版本一起运行? Java 9? animal-sniff

java-为什么–limit-modules对我不起作用?

我有以下程序: package org.example; import com.google.common.primitives.Ints; // This is a guava class public class Example { public static void main(String[] __) { System.out.println(Ints.class); } } 当我将此程序作为自动模块运行时,一切都很好

java-在JShell中声明的方法是lambda?

我对JShell中声明的方法如何在后台实现感到有些好奇. 例如. int add(int x,int y){ return x+y; } 在上面声明的方法实例BiFunction之上吗? 可能是一个愚蠢的问题,但只是出于好奇.解决方法:那是一个普通的常用方法,为什么要将其创建为BiFunction?当然,除非您告诉它. 有一个名为jdk.

将Jetty 9用作Java 9模块会产生ClassNotFoundException

我将Jetty 9.4.8.v20171121与Java 9结合使用,这是我加载的jetty模块的列表: jetty-server-9.4.8.v20171121.jar jetty-servlet-9.4.8.v20171121.jar jetty-servlets-9.4.8.v20171121.jar jetty-util-9.4.8.v20171121.jar jetty-xml-9.4.8.v20171121.jar jetty-http-9.4.8.v201

java-空字符串的Optional实现

Optional最好的事情之一是,它保存了所有检查样板的长链中的空值: Optional.ofNullable(myService.getSomething()) .map(secondService::fetch) .map(thirdService::fetchAgain) // And so forth... 如果地图返回null,则Optional在任何时候都将跳到“空”轨道. 如果可

为什么Java自动模块不包含打开部分

有一种机制可以通过将常规jar放置到modulepath而不是classpath上,将其从java-9开始转换为automatic module.自动模块具有以下属性: An automatic module is a named module that is defined implicitly, since it does not have a module declaration. Every package in an a

使用包含非导出参数类型的方法进行接口实现(Java 9模块)

我正在使用Java 9模块系统.以下是我的问题的简化版本. 我已经定义了ClassA(在com.foo模块中)来实现InterfaceB(在com.bar模块中). ClassA实现InterfaceB的方法print,该方法采用ClassC类型的参数(在com.baz模块中).下面是代码. // src/a/com/foo/ClassA.java package com.foo; imp

java-JShell-如何在不替换此类的情况下向现有类添加方法?

tl; dr:如何在不替换此类的情况下向现有类添加方法? 描述: 当我在JShell中运行以下命令时: public class TestClass {} 打印以下输出: created class TestClass 再次运行此命令将给出以下输出: modified class TestClass 让我们用一种方法创建类,如下所示: public class TestClass

使用Java 9运行应用程序,模块java.base不会“打开java.io”

我试图用Java 9运行我的应用程序(使用Java Swing开发的前端,使用部署在Wildfly 8上的EJB开发的服务器). 当客户端尝试建立EJB连接时,出现以下异常: 09:53:42,358 INFO [xnio] XNIO version 3.2.0.Final 09:53:42,465 INFO [nio] XNIO NIO Implementation Version 3.2.0.Final

Java 9 Wildfly群部署崩溃

打包由wildfly群体生成器生成并由Java9构建的hello world应用程序时,在部署该应用程序时会崩溃. 似乎原因是org.ow2.asm:asm-all:5.0.4的swarm / undertow依赖项尚未准备好Java9. 是否有一个已知的解决方法,或一个已知的日期来为Java9准备就绪? stacktrace是: Caused by: java.lang.Il

Java 9 Spring Boot应用程序的Maven构建期间的RuntimeException

我正在构建的Java 9应用程序可以通过IntelliJ IDE进行编译并运行良好.在IDE上,我尝试将其配置为Spring Boot应用程序和普通应用程序,并且两种配置都能正常工作. 在执行Maven构建时,我在堆栈跟踪下面遇到RuntimeException. Caused by: java.lang.RuntimeException at org.sprin

java-错误:未知选项:使用Maven-jdeps-plugin的模块选项时使用-M

我在maven-jdeps-plugin的官方文档中找到了module属性,其中指出: Show module containing the package Type: boolean Since: JDK 1.9.0 Required: No User Property: jdeps.module Default: false 尝试通过当前的最小pom.xml来使用它,如下所示: <build> <plugins>

java-SubmissionPublisher在提交时未调用订户的Next

每隔一段时间,我都会通过某个查询来检索推文. 这些推文必须传递给计算和操纵这些推文的服务.因此,这些服务已订阅我的发布者.因此Publisher.hasSubscribers()返回true.但是Submit或offer函数不会调用我的订阅者的onNext.因此,作为“修复”,我循环浏览订户并自己调用它.但是事实并非

java-以编程方式为JarFile提取模块名称的最佳方法是什么?

我正在研究Java 9的启动器库,该库使用模块分层.为了在该层中添加模块,我需要将模块名称(作为字符串)传递给父级的配置. ModuleLayer Javadoc在类文档的末尾提供了一个示例. 现在,我不再允许我的库用户来声明模块名称,而是希望仅将jar文件位置作为String,URL,File或JarFile传递. 所

Java10中sslSocketFactory的替代

我正在使用OkHttp,并且需要忽略SSL错误以进行应用程序调试.这曾经在Java 8中可用. final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(java.security.

Java10中的HttpRequest.BodyProcessor在哪里

我目前正在Java9〜10中通过this访问HTTP / 2客户端. Java 9确实具有HttpRequest.BodyProcessor接口,而Java 10没有HttpRequest.BodyProcessor,但是确实具有HttpRequest.BodyPublisher.两个接口都是相似的. Java为什么更改接口名称?我认为向后兼容性被忽略了.解决方法:带有Java 9和10

Java-想法:发现太多模块声明

我想创建hello world java 9应用程序,并以intellij的想法启动它. 现在我有以下结构: 内部模块-info.java的内容: module my.module.Second { requires my.module.First; } 外部模块-info.java的内容: module my.module.First { exports my.pack; } 但是idea抱怨我的项目:

Webpshere Liberty支持Java 9

Webpshere Liberty是否支持Java 9?从最新的测试版开始,它被提及与Java 8完全兼容,但没有提及升级. Websphere自由是否可以支持Java 9模块路径?解决方法:Websphere Liberty主要在“容忍模式”下使用Java 9,这意味着Liberty和应用程序可以在Java 9上运行,但是您无法利用Java 9模块化.

java – 为什么不允许导出整个模块?

在Java 9的模块声明中有2个结构: exports com.foo; 和 opens com.foo; 其中,导出授予编译时访问权限,而opens则允许运行时访问,作为反射和资源. 打开对导出有一个宽容,您可以将整个模块定义为打开,结果与显式打开每个包相同: open module com.mod { 但是没有相似的结构 export

我需要Spring 5 for Java 9吗?

Spring 5被宣传为“支持JDK 9”,同时Spring 4.3.13的文档声明它支持Java 8 (as well as 6 and 7). 这是否意味着我需要在可以之前升级到Spring 5 >在JRE 9中运行我的应用程序? >使用JDK 9编译我的应用程序?解决方法:弹簧 在the official Spring blog,他们宣布Spring 4.2将支持Java 7

如何在JavaFX 9中查找TableView中可见行的索引

如何在JavaFX 9中获取TableView中可见行的索引?在JavaFX 8中,我可以执行以下操作: // --- The offending imports in Java 9 // import com.sun.javafx.scene.control.skin.TableViewSkin; // import com.sun.javafx.scene.control.skin.VirtualFlow; /** * This is a t

什么是Java 9中的开放模块以及如何使用它

模块与open关键字之前和之后有什么区别? 例如: open module foo { } module foo { } 解决方法:为了提供对模块的反射访问,Java 9引入了open关键字. 您可以在模块声明中使用open关键字创建开放模块. 一个开放模块允许对其他模块的所有包进行反射访问. 例如,如果你想使用一些严重依

IntelliJ IDEA Ultimate 2018.3认为我的Java 9项目是Kotlin项目

我有一个IntelliJ项目,组成几个子项目,这些子项目都是Java 9模块.我使用Maven作为构建系统.我的项目没有“Facets”.我的运行配置如下所示: 我的项目设置如下所示: 我可以用Maven构建一切就好了.但是,当我尝试使用IntelliJ进行编译时,它会以某种方式认为我的项目是Kotlin项目并且无

Java 9中的JFrame扩展

在左侧的Java 9u4和Windows 7的右侧的8u144下运行的代码完全相同. Java 9似乎使窗口更大.造成这种情况的原因是什么 – JEP 263?我该如何禁用它? public class SimpleFrame { public static void main(String[] args) { JFrame frame = new JFrame(); frame.g