小编Kir*_*man的帖子

Kotlin中有构造函数引用吗?

在Java中,我们有Class::new构造函数引用的语法.我知道,方法有可调用的引用,但构造函数如何?我的一个典型用例是工厂.

kotlin constructor-reference

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

如何基于/比较Kotlin中的多个值进行排序?

假设我有一个class Foo(val a: String, val b: Int, val c: Date),我想Foo根据所有三个属性对s 列表进行排序.我该怎么做?

comparable kotlin

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

如何使用LiveData处理错误状态?

LiveData在某些情况下,new 可以用作RxJava可观察对象的替代品.但是,与之不同的是Observable,LiveData没有错误回调.

我的问题是:我应该如何处理错误LiveData,例如,当某些网络资源由于某个网络资源而无法检索时IOException

android android-architecture-components

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

Kotlin:什么是"返回@"是什么意思?

我在我的一个项目中使用RxJava,我使用Android Studio插件将我的一个类转换为Kotlin,并在一个map flatMaplambda(java中的Func1)中,中间件返回如下所示@Func1.

我不知道这是什么意思.

something.flatMap(Func1<ArticleCriteria, Observable<Pair<String, String>>> {
    val isTemporaryClone = it.isATemporaryClone
    val isTheOriginalToken = it.tokenIsOriginalHere

    if (isTemporaryClone) {
        if (!isTheOriginalToken) {
            return@Func1 paramsError("Token is always original for temp articles")
        }

        return@Func1 mJobRunner.doNotRun(DeleteArticleJob.TAG)
                            .doOnNext(deletePersonalActionById(articleId))
    }

    runArticleJobAsync(DeleteArticleJob.TAG, it)
})
Run Code Online (Sandbox Code Playgroud)

android kotlin rx-java

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

ViewPager上同时有多个页面

当使用ViewPager?时,是否有可能同时显示两个页面?我不是在寻找边缘效果,而是在寻找两个完整的页面.

提前致谢.

android android-viewpager

48
推荐指数
5
解决办法
4万
查看次数

如何从.net核心中的appsettings.json中提取列表

我有一个appsettings.json文件,如下所示:

{
    "someSetting": {
        "subSettings": [
            "one",
            "two",
            "three"
         ]
    }
}
Run Code Online (Sandbox Code Playgroud)

当我构建我的配置根,并做类似的config["someSetting:subSettings"]事情返回null并且可用的实际设置是这样的:

config["someSettings:subSettings:0"]

有没有更好的方法来检索someSettings:subSettings列表的内容?

c# .net-core asp.net-core

47
推荐指数
5
解决办法
3万
查看次数

参考Kotlin中特定实例的方法

在Java 8中,我们可以引用Class实例的方法.这是一个例子

Function1<Integer, Object> ref = a::getItem;
Run Code Online (Sandbox Code Playgroud)

a是Adapter具有该方法的类的实例Object getItem(int i).

我们可以在Kotlin做同样的事吗?我尝试了相同的语法但没有成功.到目前为止,我只能创建一个扩展方法引用,如下所示:

val ref: Adapter.(Int) -> Any = Adapter::getItem
Run Code Online (Sandbox Code Playgroud)

但是在这里我仍然需要一个实例Adapter来调用它.我看到的另一个变化是定义一个像这样的lambda:

val ref: (Int) -> Any = { a.getItem(it) }
Run Code Online (Sandbox Code Playgroud)

lambda kotlin

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

如何从Kotlin代码中调用外部命令?

我想从Kotlin代码调用外部命令.在C/Perl中,我会使用system()函数; 在Python中,我会使用子进程模块; 在Go中,我会使用os/exec; 等等.但是,我怎么在Kotlin这样做呢?

exec kotlin

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

这种类型有一个构造函数,必须在这里初始化--Kotlin

我刚开始使用Kotlin试用Android应用.我只想继承这样的Application类:

class SomeApp : Application {

}
Run Code Online (Sandbox Code Playgroud)

但是编译器提出了警告:

在此输入图像描述

并建议将其更改为:

class SomeApp : Application() {
    override fun onCreate() {
        super.onCreate()
    }
}
Run Code Online (Sandbox Code Playgroud)

在文档中读到了主要和辅助构造函数.所以如果超类有一个主构造函数,那么有必要在这里写吗?像Application类有自己的构造函数

public Application() {
    super(null);
}
Run Code Online (Sandbox Code Playgroud)

然后有必要有派生的主要构造函数?或者我不能像Java那样做:

class SomeApp : Application {
   constructor SomeApp(){
      super();
    }
}
Run Code Online (Sandbox Code Playgroud)

或者这个错误暗示了其他什么?任何人都可以详细解释我吗?我对这门语言很陌生,这对我来说很奇怪.

编辑:在java中我可以执行以下操作: class SomeApp extends Application{ }

它有隐式构造,所以我没有写:class SomeApp extends Application{ public Application(){ super(); } }但在科特林我必须定义像下面空的构造: class SomeApp:Application(){ }

android constructor kotlin kotlin-android-extensions

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

如何在 VueJS 中使用枚举(或常量)?

不得不问一些看似简单的事情,我觉得自己像个白痴,但我正试图弄清楚如何在 VueJS 中使用“枚举”。目前,在一个名为LandingPage.js我的文件中,有这么一段代码:

const Form = {
  LOGIN: 0,
  SIGN_UP: 1,
  FORGOT_PASSWORD: 2,
};

function main() {
  new Vue({
    el: "#landing-page",
    components: {
      LoginForm,
      WhoIsBehindSection,
      WhatIsSection,
      Form,
    },
    data () {
      return {
        form: Form.LOGIN,
      };
    },
    template: `
    <div>
      <LoginForm v-if="form === Form.LOGIN"></LoginForm>
      <WhatIsSection></WhatIsSection>
      <WhoIsBehindSection></WhoIsBehindSection>
    </div>
    `
  });
}
Run Code Online (Sandbox Code Playgroud)

这是v-if="form === Form.LOGIN"错误消息失败的条件:

  • 属性或方法“Form”未在实例上定义,而是在渲染期间引用。通过初始化属性,确保此属性是反应性的,无论是在数据选项中,还是对于基于类的组件。

  • 无法读取未定义的属性“登录”

只是让你们知道没有条件一切都在工作,如果我把这个位放在模板中

<p>{{ form }}</p>
Run Code Online (Sandbox Code Playgroud)

它将打印0在屏幕上。虽然,把它放在模板中

<p>{{ Form.LOGIN }}</p>
Run Code Online (Sandbox Code Playgroud)

不会导致它打印0在屏幕上。所以我终其一生都无法弄清楚为什么它不会接受Form.LOGIN

 

答案

我确实将它添加到components,但我从未想过将它添加到data. …

javascript vue.js

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