小编Bas*_*que的帖子

在IntelliJ的Java代码编辑器中修改用于生成`toString`方法的模板

我已经看到了一些文件,如有的堆栈溢出的问题,如该谈论的模板,也许Velocity模板,生成时所使用的IntelliJ toString在Java类方法。

但是,没有我在哪里可以找到哪里这个模板的生活,或如何从内部的IntelliJ访问它。

?究竟如何在IntelliJ 2018中找到并编辑toString生成模板

java templates tostring intellij-idea

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

覆盖从 Maven 导入继承的 maven-surefire-plugin 版本

我的项目由 Maven 驱动,使用不是我自己制作的 POM(来自 Vaadin)。显然,我在项目中看到的 POM 文件依赖于其他 POM 文件的某种继承。虽然我在自己的 POM 中没有看到 的依赖项maven-surefire-plugin,但在我的项目中找到了这个工件,正如您在 IntelliJ 2019 的屏幕截图的右侧看到的那样。

\n\n

在此输入图像描述

\n\n

我不是 Maven maven,所以我不知道确切的细节,但在查探中我发现了一些import行,所以我猜测 Maven POM 可以动态地从其他 POM 继承。

\n\n

问题是我的项目中存在的版本maven-surefire-plugin相当旧,版本 2.12.4。我正在尝试运行JUnit 5,它需要 2.22.0或更高版本。当前版本是3.0.0-M3.

\n\n

查看粉色箭头的左端,您可以看到我dependency在 POM 中添加了一个元素。

\n\n
    <dependency>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-surefire-plugin</artifactId>\n        <version>3.0.0-M3</version>\n    </dependency>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在左箭头提示上,我要求3.0.0-M3尝试覆盖2.12.4右箭头提示上看到的神秘导入/继承的指定版本。但我的尝试失败了,因为旧版本在执行 Maven后仍然存在cleaninstall我什至尝试重新启动 IntelliJ。但不行,运行 Maven 时我的 JUnit 5 测试仍然被忽略test

\n\n

\xe2\x9e\xa5 是否有某种方法可以覆盖显然从某些神秘来源继承的依赖项的版本? …

intellij-idea pom.xml maven maven-surefire-plugin

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

从Java 8到Java 11的RowSet迁移(获取错误)

将我们的项目迁移到Java 11时,会遇到与RowSet技术使用有关的错误(请参阅Tutorial)。

java:无法访问com.sun.rowset.CachedRowSetImpl

找不到com.sun.rowset.CachedRowSetImpl的类文件。

java:不兼容的类型:com.sun.rowset.CachedRowSetImpl无法转换为java.sql.ResultSet

我知道在Java 11 com.sun中无法访问软件包。

我该如何解决?

java

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

Java 将 19 位 Unix 时间戳转换为可读日期

我正在尝试将 19 位 Unix 时间戳(例如(五分之一))转换1558439504711000000可读的日期/时间格式。我的时间戳以 6 个零结尾,这表明时间以纳秒为单位。

我遇到过一些例子,人们使用了我不需要的时区。另一个例子使用 ofEpochSecond ,如下所示:

Instant instant = Instant.ofEpochSecond(seconds, nanos);
Run Code Online (Sandbox Code Playgroud)

但我不确定是否需要使用ofEpochSecond。

下面的代码给出了我实现这一目标的最新方法:

String timeStamp = "1558439504711000000";
long unixNanoSeconds = Long.parseLong(timeStamp);
Date date = new java.util.Date(timeStamp*1000L); 
// My preferred date format
SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd-MM-yyyy HH:mm:ss");                    
String formattedDate = sdf.format(date);
System.out.println("The timestamp in your preferred format is: " +  formattedDate); 
Run Code Online (Sandbox Code Playgroud)

但我得到的输出是这样的:

// The timestamp in your preferred format is: 11-12-49386951 11:43:20
Run Code Online (Sandbox Code Playgroud)

其中不显示年份格式,例如 2019 格式。

java unix-timestamp datetime-conversion

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

将文件名添加到Path对象

我有一个Path指向文件夹的对象。

Path pathToFolder = Paths.get( "/Users/someuser/" );
Run Code Online (Sandbox Code Playgroud)

…或推荐的使用方式Path.of

Path pathToFolder = Path.of( "/Users/someuser/" );
Run Code Online (Sandbox Code Playgroud)

我想使用Files.newBufferedWriter传递Path对象的位置在该文件夹中创建一个名为“ whatever.text”的文件。

BufferedWriter writer = Files.newBufferedWriter( pathToFile ) ;
Run Code Online (Sandbox Code Playgroud)

如何转换我pathToFolderPath对象pathToFile

我不仅仅需要字符串操作,因为它们是在运行时确定的软编码值。而且我也试图跨平台。

这似乎是一个显而易见的问题,但是我找不到任何现有的帖子(该术语确实使搜索变得棘手)。

java filenames path

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

为什么我的 UTC 即时没有转换为 BST?

我有以下代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.UK);
Instant inst = DateTimeUtils.toInstant(sdf.parse("2019-08-13T18:00:00Z"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm").withLocale(Locale.UK).withZone(ZoneId.of("Europe/London"));
System.out.println(formatter.format(inst));
//prints 18:00
Run Code Online (Sandbox Code Playgroud)

这让我感到惊讶,因为我认为inst这将是 GMT/UTC 时间,并且formatter会将其格式化为伦敦时间(该日期为 BST(UTC+1:00)),生成19:00.

我在这里缺少什么?

我猜这是我的代码一个通用的问题,但如果它的确与众不同,这是利用org.threeten.bp.*从类ThreeTen-反向移植项目,在另外的适应Android的早期ThreeTenABP项目。

java-time threetenbp threetenabp

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

从Vaadin 14开始寻找新的UI

Vaadin 14手册中的导航生命周期说:

也可以使用中的addBeforeEnterListener(BeforeEnterListener)方法为该事件注册一个独立的侦听器UI

但是在具有路由功能的现代Vaadin中,我们不再应该编写UI子类。我的粗略理解是确实存在一个UI为我们自动实例化的对象,然后路由自动替换了该UI对象中的内容。因此,UI对于使用Vaadin Flow的程序员来说,对象的存在应该是透明的。

?那么,新UI实例上的生命周期挂钩是什么,这样我就可以编写一个用户身份验证检查以BeforeEnterListener在所有@Route视图中全局工作?

调用UI.getCurrent不会做,因为我需要从布局中的某个地方调用它,但是我试图布局存在之前注册一个侦听器。

hook user-interface lifecycle vaadin vaadin-flow

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

设置日期格式以获取年份的最后两位数字(例如:2019 年的 19)

我有那个代码。

Calendar data = Calendar.getInstance();
data.setTime(new Date());
System.out.println(String.valueOf(data.get(Calendar.YEAR)).substring(2,4));
Run Code Online (Sandbox Code Playgroud)

我有两个问题:
首先,我需要将它放在一个单独的文件中String(将其放入sout)。是否可以?
其次,我必须使用日期格式而不是转换为字符串。例如,获取"19"而不是"2019".

java string formatting calendar date

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

在 Android 中使用 `Calendar` 指定日期时间范围

StackOverflow 社区,

我目前正在处理我的新项目,而且我是 Java 和 Android Studio 的新手。我Entry用两个Calendar变量编写了自己的类。是否有更短更简洁的方法来创建新Entry对象,如以下代码所示?

//MainActivity.java    
//....
private ArrayList<Entry> initEntrys() {
        ArrayList<Entry> list = new ArrayList<>();
        Calendar calendar = Calendar.getInstance();

        Calendar mStartDate = calendar;
        Calendar mEndDate = calendar;
        mStartDate.set(2019, 12, 20, 7, 0);
        mEndDate.set(2019, 12, 20, 10, 0);
        list.add(new Entry(mStartDate, mEndDate));

        return list;
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激。:)

java datetime android calendar arraylist

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

可以使 Java 流收集器返回的列表不可修改吗?

在处理 Java 流时,我们可以使用收集器来生成诸如流之类的集合。

例如,这里我们制作了一个Month枚举对象的流,并为每个对象生成一个String保存月份的本地化名称的流。我们通过调用 将结果收集到 a Listof 类型中。StringCollectors.toList()

List < String > monthNames = 
        Arrays
        .stream( Month.values() )
        .map( month -> month.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) )
        .collect( Collectors.toList() )
;
Run Code Online (Sandbox Code Playgroud)

monthNames.toString(): [janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]

为了使该列表不可修改,我们可以List.copyOf在 Java 10 及更高版本中调用。

List < String > monthNamesUnmod = List.copyOf( monthNames );
Run Code Online (Sandbox Code Playgroud)

? 有没有办法让带有收集器的流生成不可修改的列表,而我不需要包装对 的调用List.copyOf

java list unmodifiable java-stream collectors

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