小编Bas*_*que的帖子

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

8
推荐指数
2
解决办法
3521
查看次数

SimpleDateFormat模式基于语言环境,但强制使用4位数年份

我需要构建一个类似的日期格式dd/MM/yyyy.它几乎就像DateFormat.SHORT,但包含4年的数字.

我尝试用它来实现它

new SimpleDateFormat("dd//MM/yyyy", locale).format(date);
Run Code Online (Sandbox Code Playgroud)

但是对于美国语言环境,格式错误.

是否有一种通用的方法来格式化基于区域设置更改模式的日期?

谢谢

java locale simpledateformat

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

为什么要烦扰抽象或接口类?

这令人难以理解为什么最好有一个抽象类.所以我要说我必须计算不同形状的区域(圆形,矩形).我被教会更好地拥有一个抽象/界面形状,然后像Rectangle,Circle这样的类扩展它.

我做了以下代码

abstract class Shape {
    abstract int getArea();
} 

class Rectangle extends Shape{
    private int width;
    private int height;

    public Rectangle (){
        this.width = width;
        this.height = height;
    }

    // get set methods ommited

    public int getArea () {
        return width * height;
    }
}
Run Code Online (Sandbox Code Playgroud)

看起来形状类没有用处.我不能在形状类中执行getArea的实现,因为不同的形状会以不同的方式计算区域.我可以删除shape类并使我的代码更简单.

那么具有抽象/接口类形状的实际目的是什么?提前感谢您的任何解释

java polymorphism inheritance

8
推荐指数
3
解决办法
854
查看次数

与课程文档相反,持续时间不支持DAYS

在Java 8及更高版本的java.time框架中,Duration该类说:

此类以秒和纳秒为单位模拟时间量或时间量.可以使用其他基于持续时间的单位访问它,例如分钟和小时.此外,该DAYS装置可以使用,并且被视为完全等于24小时,因此忽略了夏令时效果.

然而,当我调用get方法并传递时ChronoUnit.DAYS,抛出异常.

LocalTime start = LocalTime.of ( 0 , 0 , 0 ); // First moment of the day.
LocalTime stop = LocalTime.of ( 2 , 0 , 0 ); // 2 AM.

Duration duration = Duration.between ( start , stop );
long days = duration.get ( ChronoUnit.DAYS );
Run Code Online (Sandbox Code Playgroud)

线程"main"中的异常java.time.temporal.UnsupportedTemporalTypeException:不支持的单位:天

我误解了某些东西,还是滥用了这些课程?

java duration java-time

8
推荐指数
2
解决办法
647
查看次数

CSS效果渲染具有"橡皮图章"效果的字体

在CSS中有没有有效的方法来渲染具有使其看起来像橡皮图章的效果的字体?好像橡皮图章上的墨水被放在印刷材料上了?

更好的方法是将相同的效果应用于边框,就好像边框是橡皮图章的一部分一样.像这样:

在此输入图像描述

css

8
推荐指数
3
解决办法
6913
查看次数

在 macOS (Mac OS X) 上打印 Java 类路径

在命令行上,如何查看构成当前Java 类路径的所有文件夹和文件?

Oracle教程echo $CLASSPATH说要在类 Unix 系统上使用。但在装有 Java 8 的 Mac (El Capitan) 上却什么也不打印。我记得,默认情况下,CLASSPATHmacOS 上不使用环境变量。

我看到一些诸如此类的问题显示了类路径的设置,但我只想验证类路径。

是否有一些简单的方法可以从命令行检查当前的类路径?

java macos classpath

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

测试在JUnit 4下运行,但不在JUnit 5下运行 - 编译干净,但执行0测试

任何人都可以在几分钟内轻松重现此问题.

基本的Maven quickstart项目

使用IntelliJ 2018.3和Maven 3.6.0,我使用Maven原型maven-archetype-quickstart1.4版创建了一个全新的项目.

在此输入图像描述

Java 11

在新项目的POM文件,更改属性maven.compiler.sourcemaven.compiler.target从1.7至11,为Java 11.0.2我目前使用的,祖鲁来自Azul系统.

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>11</maven.compiler.source>
  <maven.compiler.target>11</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)

在的IntelliJ的Maven的面板,我运行cleaninstall生命周期事件.

在此输入图像描述

测试在JUnit 4中运行

作为一部分install,测试运行.这个quickstart原型带有一个断言的单一测试true.

在此输入图像描述

结果显示在RunIntelliJ面板中.

[INFO]正在运行work.basil.example.AppTest

[INFO]测试运行:1,失败:0,错误:0,跳过:0,经过的时间:0.026秒 - 在work.basil.example.AppTest中

所以我知道测试已执行.

JUnit 5,而不是4

这一切都很好.现在让我们升级到JUnit 5,看看问题.

在POM中,我从这里更改了JUnit依赖项:

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

......对此:

<dependencies>
  <!--JUnit 5-->
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.3.2</version>
    <scope>test</scope>
  </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

木星进口(没有老式测试)

编译器抱怨我的AppTest.java文件.所以我改变import那里的语句来使用jupiter包.我只想在我的新greedfield项目中运行JUnit …

java junit intellij-idea junit5 junit-jupiter

8
推荐指数
1
解决办法
931
查看次数

为什么在 10 个 Java 线程中增加一个数字不会产生 10 的值?

我不明白'a'的值是0,为什么'a'不是10,那段代码的运行过程是什么,有必要从Java Memory Model分析吗?这是我的测试代码

package com.study.concurrent.demo;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;

//@SpringBootTest
@Slf4j
class DemoApplicationTests {

    int a = 0;
    int b = 0;
    @Test
    void contextLoads() {
        ExecutorService executorService = Executors.newFixedThreadPool(1);
//        final Semaphore semaphore = new Semaphore(3);
        for (int i = 0; i < 10; i++) {
            executorService.execute(() -> {
//                try {
//                    semaphore.acquire();
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
                add();
                bdd();
//              log.info("a: {},concurrent_id: {}",a,Thread.currentThread().getName());
//                semaphore.release();
            }); …
Run Code Online (Sandbox Code Playgroud)

java concurrency

8
推荐指数
2
解决办法
272
查看次数

无法解析符号“javafx.scene.web”

使用Intellij 2021.3.2,JavaFX版本:11.0.2+1。

我正在尝试将 JavaFX WebView 添加到我的应用程序中。我的导入语句无法编译:

import javafx.scene.web;  
Run Code Online (Sandbox Code Playgroud)

编译错误:

java:找不到符号符号:类Web位置:包javafx.scene

据我所知,JavaFX 版本 11 应该包含 .web 包。也许我必须安装一些特定的东西才能使用它?

javafx webview

8
推荐指数
1
解决办法
4955
查看次数