问题列表 - 第263296页

Java List在初始化期间是否表现为协变类型?

我知道Java中的列表是不变的.

所以下面的第二个语句给出了预期的编译错误

    List<Integer> integers = Arrays.asList(1, 2, 3);
    List<Number> numbers = integers;
Run Code Online (Sandbox Code Playgroud)

但是,所有这些都很好

    List<Integer> numbers1 = Arrays.asList(1, 2, 3);
    List<? extends Number> numbers2 = Arrays.asList(1, 2, 3);
    List<Number> numbers3 = Arrays.asList(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是上面的最后一个语句是如何编译的?

我理解Arrays.asList()接受来自其调用者的类型,但我认为将Arrays.asList(1,2,3)解析为最接近的类型List<Integer>并将其设置为List<Number>不会编译,因为列表是不变的.

我错过了什么?

java generics list covariance

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

Webpack命令引发错误:找不到模块“ webpack”

我正在使用网络应用程序。我在前端使用Vue.js,发现webpack是必需的,因此我将其全局安装,但是每当我运行“ webpack”命令时,都会出现以下错误:

C:\Users\compac\node_modules\webpack-cli\bin\webpack.js:242
                            throw err;
                            ^
Error: Cannot find module 'webpack'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (C:\Users\compac\node_modules\v8-compile-cache\v8-compile- 
cache.js:159:20)
at Object.<anonymous> (C:\Users\compac\node_modules\webpack-cli\bin\convert- 
argv.js:7:24)
at Module._compile (C:\Users\compac\node_modules\v8-compile-cache\v8- 
compile-cache.js:178:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at yargs.parse (C:\Users\compac\node_modules\webpack- 
cli\bin\webpack.js:239:14)
at Object.parse (C:\Users\compac\node_modules\yargs\yargs.js:543:18)
at C:\Users\compac\node_modules\webpack-cli\bin\webpack.js:217:8
at Object.<anonymous> (C:\Users\compac\node_modules\webpack- 
cli\bin\webpack.js:512:3)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require …
Run Code Online (Sandbox Code Playgroud)

bundle vue.js

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

Twitter浏览器通知不受支持

我无法在Firefox上激活Twitter网络通知,您可以在下面的屏幕截图中看到

Twitter设置截图

twitter firefox push-notification libnotify archlinux

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

Angular cli ChromeHeadless karma 仍然打开浏览器

我想使用带有业力的 ChromeHeadless。我的配置是:

process.env.CHROME_BIN = require('puppeteer').executablePath();

module.exports = function( config ) {
  config.set({
    basePath                : '',
    frameworks              : ['jasmine', '@angular/cli'],
    plugins                 : [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('@angular/cli/plugins/karma')
    ],
    angularCli              : {
      environment: 'dev'
    },
    reporters               : ['progress'],
    autoWatch               : false,
    browsers: [
      'ChromeHeadless',
    ],
    singleRun               : true
  });
};
Run Code Online (Sandbox Code Playgroud)

当我运行 ng test 时,我仍然需要打开浏览器。这是我从业力控制台得到的信息:

Karma v2.0.0 服务器启动于http://0.0.0.0:9876/

karma-runner angular angular-test

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

如何在没有redux的情况下缓存提取的数据

我知道,使用Redux我有共同点store,当我改变我的位置时,例如我从/videos页面开始,但我仍然在我的videosreducer中获取了视频.因此,如果我决定返回我的videos页面,我会显示用户已经从我的商店加载了视频,并在需要时加载更多并存储它们.

但是如果React没有Redux我改变我的位置/videos,我获取一些视频,然后将它们存储在我的VideosPage组件的本地状态,然后回到这个页面,我已经没有视频了,应该从头开始获取它们.

我怎样才能缓存它们,是否可能?

PS:这是更多theoretical问题所以没有提供代码.

javascript caching browser-cache reactjs react-redux

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

如何使用 okhttp 使 dns 查找更快?

我使用 newOkHttp EventListener来调试为什么我的请求需要这么长时间。结果如下:

0,000 callStart
0,027 dnsStart
5,189 dnsEnd
5,359 secureConnectStart
5,907 secureConnectEnd
5,910 connectEnd
5,921 connectionAcquired
5,925 requestHeadersStart
5,930 requestHeadersEnd
5,938 responseHeadersStart
6,181 responseHeadersEnd
6,189 responseBodyEnd
6,233 connectionReleased
Run Code Online (Sandbox Code Playgroud)

如您所见,从dnsStart和 开始的dnsEnd时间大约需要 5 秒。我怎样才能减少这个值?有什么方法可以预热 dns 查找或缓存或其他东西?

android okhttp okhttp3

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

将值从回收站适配器传递到android中的片段

我有一个回收站适配器,在其中添加setOnClickListener了适配器中的项。代码如下:

@Override
    public void onBindViewHolder(final FiltersAdapter.MyViewHolder holder, final int position) {
        holder.mOrganizer.setText(filtersList.get(position));
        holder.mLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                try {
                    //Log.e("message","ONclick FIlter");
                    if (holder.mOrganizerCheck.isChecked()){
                        holder.mOrganizerCheck.setChecked(false);
                    }else {
                        holder.mOrganizerCheck.setChecked(true);
                        int pos = holder.getAdapterPosition();

                        filtersList.get(pos);

                        /*Bundle bundle = new Bundle();
                        bundle.putInt(pos, );*/

                        Log.d(TAG, "onClick: " +filtersList);
                        Log.d(TAG, "onClick of position: " +pos);

                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });  
Run Code Online (Sandbox Code Playgroud)

这是片段代码,用于处理从适配器到片段的值。

private void initView() {
        mrvFilterBySender = (RecyclerView) mFilterView.findViewById(R.id.rvFilterBySender);
        mFiltersAdapter = new FiltersAdapter(getActivity(), mListOrganizer);
        RecyclerView.LayoutManager …
Run Code Online (Sandbox Code Playgroud)

android android-adapter android-fragments

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

路径压缩对于不相交的森林就足够了,为什么我们需要按等级联合

MAKE-SET(x?
    x.p = x
    x.rank = 0

UNION(x, y)
     LINK(FIND-SET(x),FIND-SET(y))

LINK(x, y)
    if x.rank > y.rank
        y.p = x
    else 
        x.p = y
        if x.rand == y.rank
            y.rank = y.rank +1

The FIND-SET procedure with path compression is quite simple:
FIND-SET(x)
    if x != x.p
        x.p = FIND-SET(x.p)
    return x.p
Run Code Online (Sandbox Code Playgroud)

您可以在《算法导论》第 3章第 21 章中找到伪代码。

这是具有秩和路径压缩的不相交集森林的伪代码。从伪代码中我们可以看出,每次union操作之前,我们都会先找到每个节点的集合号。在路径压缩的 FIND-SET 操作中,x 和 y 的高度将始终只有 2。因为在 FIND-SET 之后 xp 和 yp 都将指向集合的根。为什么仍然需要按等级联合?


Shihab Shahriar 解决了我的问题,他的回答令人印象深刻!

algorithm minimum-spanning-tree disjoint-sets kruskals-algorithm

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

结构化绑定和领带()

鉴于这些声明:

int a[3] {10,20,30};
std::tuple<int,int,int> b {11,22,33};
Run Code Online (Sandbox Code Playgroud)

我可以使用结构化绑定声明来解码ab:

auto [x1,y1,z1] = a;
auto [x2,y2,z2] = b;
Run Code Online (Sandbox Code Playgroud)

但是,如果x1,y1等已经存在了,我该怎么办?

std::tie(x1,y1,z1) = a;  // ERROR
std::tie(x2,y2,z2) = b;  // OK
Run Code Online (Sandbox Code Playgroud)

这适用b但不适用a.是否有一个类似的简单构造,对工作a,还是我去取a[0],a[1]a[2]分别?

c++ c++17 structured-bindings

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

IF else 和 for 循环在一行中

我需要在单行中应用 if else 条件和 for 循环。我需要一次更新“RL”和“RM”并将其他值更新为“其他”。怎么做??。有可能吗??

train['MSZoning']=['RL' if x=='RL' else 'Others' for x in train['MSZoning']]
Run Code Online (Sandbox Code Playgroud)

python-3.x pandas scikit-learn sklearn-pandas

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