标签: java-10

导入java.awt无法解析

我在MacBookPro上使用macOS 10.13.5安装了Eclipse [Version:Photon Release(4.8.0)]和JDK 10当我在我的代码中写入时: import java.awt.*;

我收到错误:

导入java.awt无法解析

是否java.awt包含在JDK 10中?如果是,那里是什么以及如何让Eclipse可见?如果没有,我怎么能添加java.awt?

java awt java-10

3
推荐指数
1
解决办法
7822
查看次数

使用 Java 10 时忽略 Jaxb 包信息

我正在努力解决这个问题,任何信息将不胜感激。我有一个项目,它已经使用 JAXB 一段时间来从 XML 架构构建 Java 模型并使用该模型。现在它已经在 J​​ava 8 中运行了一些。

但是,我已经升级到 Open JDK 10,当我尝试将 XML 文件解组到 Java 对象中时,出现此错误...

java.lang.IllegalArgumentException: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.minestar.cat.com/namespace/units",
 local:"units"). Expected elements are <{}units>
        at minestar.units.schema.parser.UnitsXmlParser.readXml(UnitsXmlParser.java:31)
        at minestar.units.javagenerator.JavaGeneratorPlugin.execute(JavaGeneratorPlugin.java:41)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:194)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: javax.xml.bind.UnmarshalException: …
Run Code Online (Sandbox Code Playgroud)

jaxb java-10

3
推荐指数
1
解决办法
2791
查看次数

Rounded LineBorder - 并非所有角都是圆角

我正在使用JFreeChart并且我想ToolTip通过创建我自己的Class扩展ChartPanel和覆盖来自定义createToolTip()

static private class PrivateChartPanel extends ChartPanel{

    //constructors

    @Override
    public JToolTip createToolTip() {

        JToolTip jtt = super.createToolTip();

        jtt.setBackground(Color.WHITE);

        jtt.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1, true));

        return jtt;

    }

}
Run Code Online (Sandbox Code Playgroud)

问题出在Border。它不是在所有角落都是圆形的。

工具提示边界问题

为什么它不是在所有角落都圆润的,我是怎么做到的?

PS:我新建了一个简单的项目

import java.awt.Color;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class HelloWorld {

  public static void main(String[] args) {

    JFrame a = new JFrame();

    a.setBounds(100, 100, 100, 100);
    a.setLayout(null);

    JPanel b = new JPanel();

    b.setBounds(5, 5, 50, 50);
    b.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1, true)); …
Run Code Online (Sandbox Code Playgroud)

java swing tooltip jfreechart java-10

3
推荐指数
1
解决办法
628
查看次数

用于“E”和“MMM”添加句点的 Java 10 DateTimeFormatter 模式符号

所以在 Java 8 中如下:

DateTimeFormatter df = DateTimeFormatter.ofPattern("E d MMM yyyy");
Run Code Online (Sandbox Code Playgroud)

当以这种方式应用时:

LocalDate date = LocalDate.now();
date.format(df);
Run Code Online (Sandbox Code Playgroud)

会产生这样的东西:

"Available on Thu 30 Aug 2018"
Run Code Online (Sandbox Code Playgroud)

但是,在 Java 10 中运行时完全相同的代码会产生以下结果:

"Available on Thu. 30 Aug. 2018"
Run Code Online (Sandbox Code Playgroud)

请注意日和月部分之后的句点...

我很清楚我可以只替换字符串中的句点,但我真的不想这样做。我想知道为什么会发生这种变化,是否有替代模式?

我在网上找不到任何有关此更改的参考。

编辑:

根据下面 Basil 的回答,这不是 Java 版本问题。这是语言环境问题。带有我的代码的 docker 映像在美国语言环境中运行,而我的机器在澳大利亚语言环境中运行 :)

java datetime date datetime-format java-10

3
推荐指数
1
解决办法
1053
查看次数

Java 10本地变量类型推理优势?

我试图理解Java 10局部变量类型推断.我似乎明白它是什么,但我认为没有任何优势.所以我想知道引入这个功能背后的想法是什么.这些是我的一些观察.如果我错了,请纠正我.

  1. 例如,(与其他语言不同)我不能只声明这样的变量

    var abc;
    
    Run Code Online (Sandbox Code Playgroud)

    我需要初始化它(但不能初始化为null).所以我真的没有看到任何优势.

  2. 我看到的其他一个参数是先前我们必须使用其显式类型声明这样的变量.

    Map<User, String> userChannels = new HashMap<>();
    
    Run Code Online (Sandbox Code Playgroud)

    现在我可以这样做

    var userChannels = new HashMap<User, String>();
    
    Run Code Online (Sandbox Code Playgroud)

使用现代IDE(如IntelliJ IDEA)及其对代码完成的支持.我想不出这会带来什么额外的好处(在上面的上下文中).

我读到的其他一些观点是

多态代码与var不一致.
而且我也不能将var用于非可表示类型,如Anonymous类.

鉴于所有这些,为什么有必要引入这个功能?有人可以澄清如果我在这里遗漏了什么.

java java-10

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

在字段声明中使用 var

所以从 Java 9 开始,我们可以使用 var 来声明局部变量:

var s = "cool";
Run Code Online (Sandbox Code Playgroud)

有没有办法在声明字段时使用类似的构造?

class Container {
  final var s = "cool"; // does not compile tmk
}
Run Code Online (Sandbox Code Playgroud)

据我所知,似乎不像。

java local-variables java-10

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

如何确定JDK版本-Oracle的较短发布周期

我对新的Oracle短发布周期范式感到困惑。这是带有支持日期的表格: 在此处输入图片说明

Java 8具有比以下大多数Jdk大的支持窗口。Java 9应该已经终止支持,与Java 10相同。

它决定了jdk版本成为一项不平凡的任务。

Oracle引入了Long therm支持发行版的therm。对于非LTS版本意味着什么?它们与次要发行版相似吗?

java java-8 java-10 java-11 java-12

3
推荐指数
1
解决办法
154
查看次数

lombok 或 java 'var' 有用的用例

var当您浏览代码并调查乍一看不清楚的代码时,这并不是很少。当开发人员使用非自描述方法名称时,您必须花一些时间来了解变​​量的真实类型。如果你使用 lombok 的,var你将与​​ lombok 紧密结合,所以我不会在我的代码中经常使用它

var在 java 中使用的有用用例是什么?

java var lombok java-10

3
推荐指数
1
解决办法
2049
查看次数

为什么我们不能将两个推断变量分配为彼此的匿名类?

Java的10允许做一个anonymous classvar这样的:

var a1 = new Object(){};
var a2 = new Object(){};
Run Code Online (Sandbox Code Playgroud)

但是这个赋值会抛出一个错误:

a1 = a2;
Run Code Online (Sandbox Code Playgroud)

jshell> a1 = a2; | Error: | incompatible types: $1 cannot be converted to $1 | a1 = a2; | ^^

基于错误日志,为什么不能Java的10分配两个推断varS上anonymous class对方,但它可以为其他类型,如做同样的Long,String等等?

java java-10

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

无法识别局部变量类型推断

我安装了JDK 10来尝试新功能,var但由于某些原因,我挂了很多电话—尽管JDK已添加到IntelliJ(版本2018.1)中,但以下代码仍无法编译,表示Java无法找到符号var

public class Variations {
    public static void main(String[] args) {
        var local = "foo";
        System.out.println(local);
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否在这里缺少明显的东西,还是应该启用的IntelliJ选项?

编辑:项目模块的 SDK和语言级别都设置为Java 10安装和lvl。10(虽然不是X - experimental水平)。

java var intellij-idea java-10

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