小编Öme*_*den的帖子

我应该退回收藏品还是流?

假设我有一个方法将只读视图返回到成员列表:

class Team {
    private List < Player > players = new ArrayList < > ();

    // ...

    public List < Player > getPlayers() {
        return Collections.unmodifiableList(players);
    }
}
Run Code Online (Sandbox Code Playgroud)

进一步假设所有客户端都立即迭代一次列表.也许将玩家放入JList或其他东西.客户端就不能存储到列表的引用以便稍后进行检查!

鉴于这种常见情况,我应该返回一个流吗?

public Stream < Player > getPlayers() {
    return players.stream();
}
Run Code Online (Sandbox Code Playgroud)

或者在Java中返回非惯用的流?设计的流是否始终在它们创建的同一表达式中"终止"?

java collections encapsulation java-8 java-stream

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

从gcloud命令安装Google Cloud组件错误

我试图从gcloud命令行安装几个GCP组件并始终得到相同的错误:

$ gcloud components list

Your current Cloud SDK version is: 146.0.0
The latest available version is: 146.0.0

???????????????????????????????????????????????????????????????????????????????????????????????????????????????
?                                                  Components                                                 ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????
?     Status    ?                         Name                         ?            ID            ?    Size   ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????
? Not Installed ? App Engine Go Extensions                             ? app-engine-go            ?  47.9 MiB ?
? Not Installed ? Bigtable Command Line Tool                           ? cbt                      ?   3.8 MiB ?
? Not Installed ? Cloud Datalab Command Line Tool                      ? datalab                  ?   < 1 MiB ?
? Not Installed …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform gcloud

37
推荐指数
4
解决办法
3万
查看次数

如何修复调用失败的服务器意外响应:Android Studio中未经授权

我在Gitlab上有一个项目,最近几天我一直在处理它!

现在我想pull在家用PC上进行项目,但显示以下错误:

Invocation failed Unexpected Response from Server:  Unauthorized
        java.lang.RuntimeException: Invocation failed Unexpected Response from Server:  Unauthorized
        at org.jetbrains.git4idea.nativessh.GitNativeSshAskPassXmlRpcClient.handleInput(GitNativeSshAskPassXmlRpcClient.java:34)
        at org.jetbrains.git4idea.nativessh.GitNativeSshAskPassApp.main(GitNativeSshAskPassApp.java:30)
        Caused by: java.io.IOException: Unexpected Response from Server:  Unauthorized
        at org.apache.xmlrpc.LiteXmlRpcTransport.sendRequest(LiteXmlRpcTransport.java:231)
        at org.apache.xmlrpc.LiteXmlRpcTransport.sendXmlRpc(LiteXmlRpcTransport.java:90)
        at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:72)
        at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194)
        at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:185)
        at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:178)
Run Code Online (Sandbox Code Playgroud)

我的Android Studio版本是3.4

java git android gitlab android-studio

37
推荐指数
10
解决办法
4734
查看次数

我想计算Java中两点之间的距离

好的,所以我编写了大部分程序,可以让我确定两个圆是否重叠.

除了一个问题,我的程序没有任何问题:程序不会接受我为两个中心点之间的距离编写的代码.我可以弄清楚if/else逻辑告诉用户取决于稍后的距离值会发生什么,但我想知道现在有什么问题.Eclipse,我编写的程序,告诉我应该将距离解析为数组,但我已经告诉过你它是一个int.

这是我的代码:

package circles;
import java.util.Scanner;

public class MathCircles {    
    // variable for the distance between the circles' centers
    public static int distance;

    // variable for the lengths of the radii combined
    public static int radii;

    public static void main(String[] args) {
        // Get the x-value of the center of circle one
        System.out.println("What is the x-coordinate for the center of circle one?");
        Scanner keyboard = new Scanner(System.in);
        int x1 = keyboard.nextInt();

        //Get the y-value of the center of circle …
Run Code Online (Sandbox Code Playgroud)

java math distance

27
推荐指数
4
解决办法
12万
查看次数

链接回亚马逊应用程序商店进行评级

我目前在谷歌播放中使用以下代码为我的Android应用程序请求审查和评级我的应用程序.

如何链接回亚马逊应用商店或亚马逊市场实现同样的事情?

Intent goToMarket = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.yapp.blah"));
goToMarket.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(goToMarket);
Run Code Online (Sandbox Code Playgroud)

java android android-intent android-studio

20
推荐指数
3
解决办法
8017
查看次数

Rust“未来无法在线程之间安全地发送”

我正在调用异步实现的方法:

let mut safebrowsing: MutexGuard<Safebrowsing> = self.safebrowsing.lock().unwrap();
safebrowsing.is_safe(input: &message.content).await;
Run Code Online (Sandbox Code Playgroud)

is_safe -方法:

pub async fn is_safe(&mut self, input: &str) {
    let links = self.finder.links(input);

    for link in links {
        match reqwest::get("url").await {
            Ok(response) => {
                println!(
                    "{}",
                    response.text().await.expect("response has no content")
                );
            }
            Err(_) => {
                println!("Unable to get safebrowsing-response")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是,通过异步调用is_safe -方法,编译器告诉我线程无法安全发送。该错误是关于:

future cannot be sent between threads safely
within `impl std::future::Future`, the trait `std::marker::Send` is not implemented for `std::sync::MutexGuard<'_, Safebrowsing>`
required for the cast …
Run Code Online (Sandbox Code Playgroud)

multithreading mutex rust

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

如何使用注释在jackson的反序列化过程中强制执行A​​CCEPT_SINGLE_VALUE_AS_ARRAY

有没有办法在类的List属性上使用注释在Jackson中使用ACCEPT_SINGLE_VALUE_AS_ARRAY?我正在使用Spring并获得以下异常

嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:无法从VALUE_STRING标记中反序列化java.util.ArrayList的实例

假设我有一个如下课程:

public class MyClass {

    private List < String > value;
}
Run Code Online (Sandbox Code Playgroud)

我的JSON结构如下:

情况1:

[{"operator": "in", "value": ["Active"], "property": "status"}]
Run Code Online (Sandbox Code Playgroud)

案例2:

[{"operator": "like", "value": "aba", "property": "desc"}]
Run Code Online (Sandbox Code Playgroud)

我应该使用什么注释来让框架知道我希望在反序列化时对这2个案例进行相同的处理

更新: 为了更加清晰,我在本文中将更新移至答案.

java spring json jackson

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

优雅退出 TcpListener.incoming()

来自 rust std net 库:

let listener = TcpListener::bind(("127.0.0.1", port)).unwrap();

info!("Opened socket on localhost port {}", port);

// accept connections and process them serially
for stream in listener.incoming() {
    break;
}

info!("closed socket");
Run Code Online (Sandbox Code Playgroud)

怎样才能让听者不再听呢?API 中表示,当侦听器被删除时,它会停止。incoming()但如果是阻塞调用,我们该如何删除它呢?最好没有像 tokio/mio 这样的外部板条箱。

tcp rust

13
推荐指数
2
解决办法
5796
查看次数

从 `async fn` 返回的 future 的具体类型是什么?

我应该使用什么类型的向量来存储 future?

我尝试在同一个 URL 上发出多个并发请求,并将所有 future 保存到向量中以与join_all.

如果我没有明确设置向量的类型,则一切正常。我知道 Rust 可以找到变量的正确类型。CLion 确定向量类型为Vec<dyn Future<Output = ()>>,但是当我尝试自己设置类型时,它给了我一个错误:

error[E0277]: the size for values of type `dyn core::future::future::Future<Output = ()>` cannot be known at compilation time
  --> src/lib.rs:15:23
   |
15 |     let mut requests: Vec<dyn Future<Output = ()>> = Vec::new();
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
   = help: the trait `std::marker::Sized` is not implemented for `dyn core::future::future::Future<Output = ()>`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = …
Run Code Online (Sandbox Code Playgroud)

asynchronous future rust

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

如何安全地从`&mut [u32]`获取不可变的字节片?

在我的项目的相当低级的部分中,函数接收可变的原始数据切片(&mut [u32]在这种情况下)。此数据应以小端序写入作者。

现在,仅此一项就不成问题,但是所有这些必须快速。我评估了我的应用程序,并将其确定为关键路径之一。特别是,如果不需要更改字节序(因为我们已经在一个小的字节序系统上),那么就不会有任何开销。

这是我的代码(Playground):

use std::{io, mem, slice};

fn write_data(mut w: impl io::Write, data: &mut [u32]) -> Result<(), io::Error> {
    adjust_endianness(data);

    // Is this safe?
    let bytes = unsafe {
        let len = data.len() * mem::size_of::<u32>();
        let ptr = data.as_ptr() as *const u8;
        slice::from_raw_parts(ptr, len)
    };

    w.write_all(bytes)
}

fn adjust_endianness(_: &mut [u32]) {
    // implementation omitted
}
Run Code Online (Sandbox Code Playgroud)

adjust_endianness更改位置的字节序(这很好,因为错误的字节序u32是垃圾,但仍然是有效的u32)。

该代码有效,但关键问题是:这样安全吗?特别是,在某个时刻,data并且bytes两者都存在,它们是同一数据的一个可变且一个不变的切片。听起来很不好,对吧?

另一方面,我可以这样做:

let bytes = &data[..];
Run Code Online (Sandbox Code Playgroud)

这样,我也有这两个方面。所不同的只是 …

unsafe rust

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