小编Hen*_*Lin的帖子

Java 8 Arraylist hugeCapacity(int)实现

我正在阅读有关ArrayListJava 如何发展的文档.我不明白为什么该hugeCapacity(int minCapacity)方法选择返回Integer.MAX_VALUEMAX_ARRAY_SIZE.

MAX_ARRAY_SIZE课堂上的定义来看,

244 |     private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
Run Code Online (Sandbox Code Playgroud)

Integer.MAX_VALUE除了一个整数(32 bits)的大小外几乎相同.

264 |     private static int hugeCapacity(int minCapacity) {
265 |         if (minCapacity < 0) // overflow
266 |             throw new OutOfMemoryError();
267 |         return (minCapacity > MAX_ARRAY_SIZE) ?
268 |             Integer.MAX_VALUE :
269 |             MAX_ARRAY_SIZE;
270 |     }
Run Code Online (Sandbox Code Playgroud)

谁能告诉我的细微差别是什么返回Integer.MAX_VALUEMAX_ARRAY_SIZE?无论哪种方式,都不应该OutOfMemoryError发生?

java arraylist

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

使用 Swagger UI 设置 Api 版本

我有一个通过使用 Jersey 开发的 REST API,我们通过 swagger-ui 记录 REST API。不幸的是,我们没有从第一天开始对 API 进行版本控制。我们现在正在尝试向 API 添加版本控制。

我采取的第一步是尝试更新动态生成的 swagger (html) 页面显示的 API 版本。我已将调用流程一直跟踪到 swagger-ui.js 文件,但我不知道如何更改动态生成页面底部显示的 API 版本。

当前显示在底部的默认值是“API VERSION: 1.0.0”。

我在这里读过一些有关 ServiceStack 的内容,但不幸的是我正在开发的代码库没有使用任何此类内容。

任何人都可以请指出我需要更改/更新的位置/内容才能更新显示的 API 版本号吗?

api rest swagger swagger-ui

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

在继续JavaFX之前更新UI并强行等待

我在这里展示了我欢迎场景的图像.

图片

" 创建新项目"按钮的当前行为如下所示:

Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow();
stage.hide();
Parent root = FXMLLoader.load(getClass().getResource("/view/scene/configure/NewProjectConfigureScene.fxml"));
Scene scene = new Scene(root);
stage.setTitle("Configure New Project Settings");
stage.setScene(scene);
stage.show();
Run Code Online (Sandbox Code Playgroud)

用文字解释:按下按钮 - >我得到舞台 - >隐藏当前场景 - >切换舞台以获得新场景 - >重新显示舞台.这种行为很有效.

我是GUI编程的新手,所以当我解释我需要的东西时,请耐心等待.

我现在想添加一个小功能,其中在新建项目时按下按钮,将显示在当前场景加载消息,我迫使GUI等待几秒钟(使用户有时间来看看这个"装"消息",然后继续进入下一个场景.加载消息看起来像这样.

图片

我真的想要实现这个功能,因为加载消息后面的等待可能更直观,从而改善了我在使用程序时的用户体验.

我最初的尝试是做以下事情:

statusText.setText("Please wait..."); // statusText is the "loading message"
Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow();
try {
    Thread.sleep(2000);                
} catch(InterruptedException ex) {
    Thread.currentThread().interrupt();
}
stage.hide();

Parent root = FXMLLoader.load(getClass().getResource("/view/scene/configure/NewProjectConfigureScene.fxml"));
Scene scene = new Scene(root);
stage.setTitle("Configure New Project Settings");
stage.setScene(scene);
stage.show();
Run Code Online (Sandbox Code Playgroud)

我刚读到这里你永远不会睡觉UI线程,因为它会冻结整个应用程序.所以我一直在尝试从上面链接的第一个答案中提到的方法,它说要使用javafx.concurrent.Task …

java multithreading javafx

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

有没有正确的方法来合并两个顺序不正确的提交?

我想将两个提交不按顺序合并到一个。

例如,如果我执行命令git rebase -i HEAD~3

pick 8h47n1f Update documentation and release-notes  #a
pick 8n32b7a Implemented some random function        #b
pick a73ncj1 Update documentation and release-notes  #c
Run Code Online (Sandbox Code Playgroud)

我想在推送之前将a和c行合并为一个提交。

我当前完成此任务的方法是按以下方式对提交进行重新排序:

pick 8h47n1f Update documentation and release-notes   #a
squash a73ncj1 Update documentation and release-notes #c
pick 8n32b7a Implemented some random function         #b
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还没有看到任何危险的副作用。有谁知道我是否真的可以通过这样做破坏某些东西?有没有更好,更安全的方法来完成我要完成的工作?

git

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

标签 统计

java ×2

api ×1

arraylist ×1

git ×1

javafx ×1

multithreading ×1

rest ×1

swagger ×1

swagger-ui ×1