小编ibe*_*beu的帖子

Typescript无法访问JSON对象(Angular2)

我有一个最奇怪的问题.

我正在收到一个JSON对象

{"login":"admin","name":"Admin"}
Run Code Online (Sandbox Code Playgroud)

而我在代码中所做的是:

private _userData: User;
...
private getUserData() {
    this._userInfoService.getUserInfo()
        .subscribe(
            data => {
                this._userData = data.json(); // (using <User> data.json() changes nothing
            },
            err => alert(err)
        );
}
Run Code Online (Sandbox Code Playgroud)

用户类型的位置

export interface User {
    login: string;
    name: string;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用angular访问html中的那些字段时:

<p>{{ _userData.login }}</p>
<p>{{ _userData.name }}</p>
Run Code Online (Sandbox Code Playgroud)

我在控制台中遇到了一些令人讨厌的错误: Error: EXCEPTION: TypeError: l__userData21 is null in [{{ _userData.login }} in UserHomeComponent@8:7]

虽然我可以清楚地看到我在这个对象上做console.log的时候: Object { login: "admin", name: "Admin" }

我和其他班级完全一样,它在那里工作.更有趣的是,当我稍微更改代码时,如下所示:

private _name: string;
private _login: string;
...
private getUserData() { …
Run Code Online (Sandbox Code Playgroud)

javascript json typescript angular

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

Streams中的断言

我知道我可以过滤流只获取那些非空的元素,然后随心所欲地使用它们.像这样的东西:

myList.stream().filter(element -> element != null).doOtherThings...
Run Code Online (Sandbox Code Playgroud)

有没有办法断言元素在流函数中不为空,以便它遍历所有元素,如果它发现一个为null,它会抛出异常?我一直在考虑以下内容:

myList.stream().assert(Objects::nonNull).doOtherThings...
Run Code Online (Sandbox Code Playgroud)

java assertion java-stream

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

Streams - 过滤所有不抛出异常

假设我有一个Reports流,我有一个方法可以检查用户是否有权读取每个报告.如果用户没有权限,此方法将抛出异常

checkReadAuthorization(Report report) throw AccessViolationException;
Run Code Online (Sandbox Code Playgroud)

有没有办法过滤掉此方法引发异常的所有报告?就像是:

reports.stream()
.filterThrowingException(this::checkReadAuthorization);
Run Code Online (Sandbox Code Playgroud)

现在我有一个函数,如果抛出异常则返回true或false但是我想知道是否有更好的方法来实现这个

private boolean checkAuthorization(Report report) {
    try {
        checkReadAuthorization(report);
        return true;
    } catch(AccessViolationException ex) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我在这样的过滤器中使用它

return dossiers.stream()
    .filter(this::checkAuthorization)
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

java exception list java-8 java-stream

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

@NotNull和@Nullable,与Java注释矛盾

我偶然发现我不小心这样做了:

@javax.annotation.Nullable
@javax.validation.constraints.NotNull
Run Code Online (Sandbox Code Playgroud)

编译器没有抱怨,一切似乎都很好。

现在,我想知道当两个或更多注释相互矛盾时内部发生了什么。此外,顺序重要吗?

这是

@Nullable
@NotNull
Run Code Online (Sandbox Code Playgroud)

比这一样吗?

@NotNull
@Nullable
Run Code Online (Sandbox Code Playgroud)

一般来说,这对注释如何起作用?谁赢?

编辑:我正在寻找一个一般性的答案,不一定关于这两个注释

java annotations nullable

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