小编Mik*_*bel的帖子

继承具有冲突的通用超级接口的原始类型

我遇到了一些有趣的Java代码,IntelliJ标记为错误,但javac接受为合法.IntelliJ是错误的,代码是合法的,或者编译器是"错误的",无论是由于错误还是故意放松规则.

我喜欢把我的理解Java类型系统相当不错,和我自己的推理使我怀疑的IntelliJ是错误的,javac是对的.但是,我对JLS有一段时间了,我想知道肯定.

在我们讨论有问题的代码之前,让我们看看一些绝对非法的类似代码:

interface A<T> {}
interface X extends A<String> {}
interface Y extends A<Object> {}

interface Z extends X, Y {} // COMPILE ERROR
Run Code Online (Sandbox Code Playgroud)

正如我所料,IntelliJ都javac 正确地将其标记为错误:'A'不能用不同的类型参数继承:'java.lang.String'和'java.lang.Object'.

没问题.但是如果我们通过扩展原始形式来制作XY通用呢?Z

interface X<T> extends A<String> {}
interface Y<T> extends A<Object> {}

interface Z extends X, Y {}  // OK according to javac, ERROR according to IntelliJ
Run Code Online (Sandbox Code Playgroud)

在这里,IntelliJ急切地报告了它为第一个片段所做的相同错误,但很javac高兴接受所写的代码.

我的理解是原始类型是递归擦除的,这意味着原始类型的所有超类和超接口都被其 …

java generics intellij-idea

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

在android中创建Wifi热点配置

我正在使用android 4.1.1 ...我正在创建一个应用程序,允许用户使用Wifi Hotspot创建自己的网络,然后客户端可以连接到它并共享数据.我已成功在android中创建了Wifi热点但我无法为此目的配置它.有没有办法通过编码在android上配置Wifi Hotspot?

android wifi android-wifi tethering

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

与Google的WPF应用程序身份验证

我在OAuth中找到了许多不同的解决方案,无论是使用某些库还是使用纯粹的请求(https://github.com/googlesamples/oauth-apps-for-windows).

但是,没有一个解决方案看起来像我真正需要的解决方案.目前,我的应用程序使用自己的数据库供用户使用WCF服务请求(使用用户名和密码)登录.但是,所有用户都使用Google帐户创建了他们的域名电子邮件,因此我想添加另一个"登录Google"按钮,这样只需确保用户也可以使用他的Google电子邮件密码对登录.我不需要返回令牌以供进一步使用等.

在WPF/C#桌面应用程序中实现此功能的最简单方法是什么?

c# wpf google-authentication oauth-2.0 google-oauth

6
推荐指数
2
解决办法
3377
查看次数

在 Jest 中动态生成测试

我正在寻找一种在 Jest 中生成测试并运行它们的方法。我正在测试一个 API,测试用例是从 CSV 文件导入的,从中生成测试。

目前我得到的是一组参数,我想从中生成测试并运行它们。这就是我看到它的工作方式:

let testFn =  (testName, request, expected) => it(test.testName, (request, expected) => {
    return new Promise((resolve, reject) => {
        http.post(request, (err, res) => {
            if (err) {
                reject(err);
            } else {
                resolve(res);
            }
        })
    }).then((res) => {
        expect(res.result).toBe(expected['result']);
        return response;
    })
});
Run Code Online (Sandbox Code Playgroud)

上面的代码是我的测试功能。在我看来,应该调用它来执行测试。它根据 3 个参数生成测试:

  • testName 他是测试的名称,在控制台中显示
  • request 是发送到 API 的请求
  • expected 是预期的结果。

结构总是相同的:res.result应该是参数中的任何内容expect

我从 CSV 获得的带有测试的数组元素的示例是:

const oneTest = {
    testName: 'the request should return 10',
    request: {
        input: …
Run Code Online (Sandbox Code Playgroud)

javascript testing code-generation jestjs

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