小编Kun*_*Lun的帖子

拥有Runnable实现的函数

我有以下代码:

new Thread(() -> {

    //do things

}).start();

new Thread(() -> {

    //do same things

}).start();
Run Code Online (Sandbox Code Playgroud)

我知道我可以声明一个包含lambda的函数:

Function<Integer, Integer> add = x -> x + 1;
Run Code Online (Sandbox Code Playgroud)

我想使此函数保留Runnablefrom的实现new Thread

但我不知道该怎么放之间<>Function

java lambda functional-interface

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

LocalDateTime.now() 错误的小时

我正在使用LocalDateTime.now()获取系统的日期和时间,但时间已经过去了一个小时。

如果系统有 14:52,则now()返回 13:52。

系统操作系统为Windows 10。

java datetime

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

尝试重新启动时 OkHttp WebSocket RejectedExecutionException

我有这样的客户:

OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .pingInterval(Duration.ofMinutes(3))
            .readTimeout(Duration.ofMillis(0))
            .build();
Run Code Online (Sandbox Code Playgroud)

这个方法用于启动和停止:

private WebSocket webSocket = null;
private MyListener wsListener = null;

private void start(){

    if(webSocket != null){ return; }

    wsListener = new MyListener();

    Request request = new Request.Builder()
        .url("wss://stream.binance.com:9443/ws")
        .build();

    webSocketBinance = okHttpClient.newWebSocket(request, wsListener); //here triggers error

}

private void stop(){

    if(webSocket == null){ return; }

    webSocket.close(1000, "{\"reason\": \"With love\"}");
    webSocket= null;

    okHttpClient.dispatcher().executorService().shutdown();
    okHttpClient.connectionPool().evictAll();

    wsListener = null;

}
Run Code Online (Sandbox Code Playgroud)

有时我想像这样重新启动连接:

start();

Thread.sleep(10_000);

//restart connection
stop();
start(); //here triggers the error

Run Code Online (Sandbox Code Playgroud)

但在start() …

java websocket okhttp

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

将 Maven 导出为包含所有依赖项的 jar 文件

我有自己的 java 库创建为 Maven 项目,并在 pom.xml 中包含一些依赖项

我想将项目导出为 jar 并将其包含到其他 Maven 项目中。

问题是我需要将库的 pom.xml 中的所有依赖项复制到 Maven 项目中,在该项目中导入我的库以使其正常工作。

如何导出我的库而不需要复制我的库的依赖项。

java maven maven-dependency

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

OffsetDateTime - 打印偏移量而不是 Z

我有这个代码:

String date = "2019-04-22T00:00:00+02:00";

OffsetDateTime odt = OffsetDateTime
      .parse(date, DateTimeFormatter.ISO_OFFSET_DATE_TIME)                             
      .withOffsetSameInstant(ZoneOffset.of("+00:00"));

System.out.println(odt);
Run Code Online (Sandbox Code Playgroud)

这个打印: 2019-04-21T22:00Z

如何打印2019-04-21T22:00+00:00?用 offset 代替Z.

java datetime-format timezone-offset java-time

5
推荐指数
2
解决办法
2077
查看次数

CodeIgniter 4 过滤器 - 退出并响应

我有一个使用 CodeIgniter 4 的项目。

我有一个before过滤器:

public function before(RequestInterface $request){

    $auth = $request->getHeader("Authorization");
    if($auth == null){

        $response = Services::response();
        $response->setStatusCode(401);
        $response->setHeader("WWW-Authenticate", "Bearer Token");
        $response->setBody("{\"error\": \"unauthorized\"}");

        exit;

    }

}
Run Code Online (Sandbox Code Playgroud)

如果没有授权,我想停止请求并返回$response给客户端。

现在请求已停止,因为exit.

但作为答案我得到了200 OK并且没有body content

我如何发出exit请求并将其设置$response给客户端?

php codeigniter codeigniter-4

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

从 StackTraceElement 获取不带包的类名

我有这个ste.getClassName()返回String像这样的pack.age.Foo

steStackTraceElement

我怎样才能得到Foo?或者唯一的方法是执行Foo从该字符串中提取的方法?

java

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

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
查看次数

从 JsonNode 数组中获取元素

我有这个json:

{
    "text":[
        {"a":1},
        {"b":2}
    ]
}
Run Code Online (Sandbox Code Playgroud)

我有这个代码:

JsonNode jsonNode = (new ObjectMapper()).readTree(jsonString);

//get first element from "text"
//this is just an explanation of what i want

String aValue = jsonNode.get("text")[0]
                        .get("a")
                        .asText();
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点,而不将其映射到一个对象?

或者做一些像JsonNode[] arrayarray[0]代表aarray[1]代表的事情b

java jackson

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

JavaFX TableView editable(true)不起作用

我有以下代码:

public static void main(String[] ar){ launch(ar); }

@Override
public void start(Stage primaryStage){

    TableView<Foo> tableView = new TableView<>();
    tableView.setColumnResizePolicy(TableView.UNCONSTRAINED_RESIZE_POLICY);
    tableView.setPlaceholder(new Label("No data"));
    tableView.setEditable(true);

    TableColumn<Foo, String> colText = new TableColumn<>("Text");
    colText.setCellValueFactory(new PropertyValueFactory<>("text"));

    tableView.getColumns().add(colText);

    List<Foo> listFoo = new ArrayList<>(Arrays.asList(new Foo("1"), new Foo("2"), new Foo("3")));

    tableView.setItems(FXCollections.observableArrayList(listFoo));

    primaryStage.setScene(new Scene(tableView));
    primaryStage.show();

}

public class Foo{

    private String text;

    public Foo(String txt){ text = txt; }

    public String getText(){ return text; }

    public void setText(String text){ this.text = text; }

}
Run Code Online (Sandbox Code Playgroud)

我尝试使表格的单元格可编辑:tableView.setEditable(true);,但是不起作用。

如何使表格的单元格可编辑或具有将值从单元格复制到剪贴板的可能性。

java javafx

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