小编Dre*_*ens的帖子

Java通用字段

我有一个PlayerCharacter类.PlayerCharacter可以扩展(例如,VampirePlayerCharacter vs WerewolfPlayerCharacter)

我有一个特质课.特性可以扩展(例如,代或Gnosis).

PlayerCharacter有一个方法,#withTrait(Trait)它将Trait添加到一个集合中. PlayerCharacter有一个方法,#applyAllTraits()它循环遍历集合并将它们中的每一个应用于角色.

A VampirePlayerCharacter应该能够被赋予任何Trait适用于a的东西PlayerCharacter,以及任何Trait只适用于a的东西VampirePlayerCharacter.

所以我添加了一个泛型类型 Trait<PC extends PlayerCharacter>

因此,可以BasicTrait<PlayerCharacter>Generation<VampirePlayerCharacter>

我的难题:

  • 如果PlayerCharacter的特征集合是Collection<Trait<PlayerCharacter>>,则VampirePlayerCharacter无法添加Trait<VampirePlayerCharacter>到集合中.

  • 如果PlayerCharacter是特征集合Collection<Trait<? extends PlayerCharacter>>,那么VampirePlayerCharacter可以添加Trait<VampirePlayerCharacter>到集合中.但是,PlayerCharacter不能再遍历这些特征,因为它们的类型是不确定的(它可能是Trait<PlayerCharacter>一个Trait<VampirePlayerCharacter>或一个Trait<WerewolfPlayerCharacter>或者......)

  • 如果PlayerCharacter是特征集合Collection<Trait<? super PlayerCharacter>>,则VampirePlayerCharacter无法添加Trait<VampirePlayerCharacter>,因为VampirePlayerCharacter不是超类型PlayerCharacter

我觉得更专业的特性只需要在他们的应用方法中使用演员阵容,如果你不恰当地设置它们,他们会爆炸 - 但我确信这不是一个新奇的问题,我的头发宽广.而我无法绕过解决方案.

class PlayerCharacter { …
Run Code Online (Sandbox Code Playgroud)

java generics

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

AWS AUTHORIZATION 端点重定向到 LOGIN 端点

在 AWS 中,我有一个用户池。

  • 该用户池有一个用户。

  • 该用户池有一个 App 客户端,App Client Id 为 MY-CLIENT-ID。

  • 该应用程序客户端已启用为 cognito 用户池的身份提供者,回调 url 为https://MY_APP/redirect_uri,仅在“允许的 OAuth 流”和“电子邮件”和“openid”下选中“授权代码授予”在“允许的 OAuth 范围”下检查。

  • 该用户池的域名为 MY-DOMAIN。

当我导航到

https://MY-DOMAIN.auth.us-east-1.amazoncognito.com/login?
response_type=code&
client_id=MY-CLIENT-ID&
redirect_uri=https://MY_APP/redirect_uri
Run Code Online (Sandbox Code Playgroud)

我被重定向到默认的 Cognito 登录屏幕,并且可以成功通过我的用户池用户进行身份验证。身份验证后,我被重定向到

https://MY_APP/redirect_uri?code=AUTHORIZATION_CODE
Run Code Online (Sandbox Code Playgroud)

但是,当我导航(通过浏览器或 curl)到

https://MY-DOMAIN.auth.us-east-1.amazoncognito.com/oauth2/authorize?
response_type=code&
client_id=MY-CLIENT-ID&
redirect_uri=https://MY_APP/redirect_uri
Run Code Online (Sandbox Code Playgroud)

我期待的地方

HTTP/1.1 302 Found
Location: https://MY_APP/redirect_uri?code=AUTHORIZATION_CODE
Run Code Online (Sandbox Code Playgroud)

相反,我收到

HTTP/1.1 302 Found
Location: https://MY-DOMAIN.auth.us-east-1.amazoncognito.com/login?
response_type=code&
client_id=MY-CLIENT-ID&
redirect_uri=https://MY_APP/redirect_uri
Run Code Online (Sandbox Code Playgroud)

这(显然)将我重定向到登录页面。

我确定我忽略了一些明显的东西,但无法弄清楚它是什么。

参考:https : //docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html

amazon-web-services aws-cognito

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

标签 统计

amazon-web-services ×1

aws-cognito ×1

generics ×1

java ×1