相关疑难解决方法(0)

如何定义在Java 8中将lambda作为参数的方法?

在Java 8中,方法可以创建为Lambda表达式,并且可以通过引用传递(通过一些工作).有大量的在线示例,lambdas被创建并与方法一起使用,但没有关于如何使用lambda作为参数的方法的示例.那是什么语法?

MyClass.method((a, b) -> a+b);


class MyClass{
  //How do I define this method?
  static int method(Lambda l){
    return l(5, 10);
  }
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

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

RxJava- RxAndroid在动态EditText上进行表单验证

EditText在表单提交之前,我的表单可以包含可变数量的表单.我可以执行验证检查,如果EditTexts的数量固定如下 -

Observable<CharSequence> emailObservable = RxTextView.textChanges(editEmail).skip(1);
Observable<CharSequence> passwordObservable = RxTextView.textChanges(editPassword).skip(1);

mFormValidationSubscription = Observable.combineLatest(emailObservable, passwordObservable,
                (newEmail, newPassword) -> {                   
                    boolean emailValid = !TextUtils.isEmpty(newEmail) && android.util.Patterns.EMAIL_ADDRESS.matcher(newEmail).matches();
                    if(!emailValid) {
                        emailInputLayout.setError(getString(R.string.error_invalid_email));
                        emailInputLayout.setErrorEnabled(true);
                    }else {
                        emailInputLayout.setError(null);
                        emailInputLayout.setErrorEnabled(false);
                    }

                    boolean passValid = !TextUtils.isEmpty(newPassword) && newPassword.length() > 4;
                    if (!passValid) {
                        passwordInputLayout.setError(getString(R.string.error_invalid_password));
                        passwordInputLayout.setErrorEnabled(true);
                    } else {
                        passwordInputLayout.setError(null);
                        passwordInputLayout.setErrorEnabled(true);
                    }

                    return emailValid && passValid;
                }).subscribe(isValid ->{
                    mSubmitButton.setEnabled(isValid);
                });
Run Code Online (Sandbox Code Playgroud)

但现在因为有不同数量的输入我尝试创建的列表Observable<CharSequence>Observable.combineLatest(),但我坚持为与继续进行.

List<Observable<CharSequence>> observableList = new ArrayList<>();

        for(InputRule inputRule : mMaterial.getRules()) {
            View vInputRow …
Run Code Online (Sandbox Code Playgroud)

validation android rx-java rx-android

12
推荐指数
2
解决办法
2976
查看次数

像Runnable这样的界面的好名称但返回结果?

我正在寻找一个有一个run像Runnable 这样的方法但返回结果的接口的好名字.

我目前考虑的选项是:

  1. 计算 - >过于数学,而不是返回结果的所有内容都是计算

  2. 功能 - >接近我正在寻找的东西,但它仍然是数学上太过分了

  3. 动作 - >是不适合因为它没有必要产生结果

  4. 操作 - >这将是我目前最喜欢的,但在数学上它可能只描述一种关系,而不会产生更多的结果.与行动相同

  5. 提供者 - >提供者意味着给某人/某事物提供某些东西,但并非总是这样,因为返回这种可运行的结果是很常见的

  6. 供应商 - >参见供应商

  7. 任务 - >是值得考虑的事情,但会干扰任务的另一种表示法,即由调度程序执行的任务.

  8. 工作 - >可能工作但工作流程更好地保存工作流程.

  9. 工作 - >与任务相同

  10. 过程 - >可能工作但是最好保留,并且不是所有结果都是由实际过程产生的(getter示例)

这些是我找到的替代品.最接近的赌注是供应商或ResultSupplier界面,但听起来很尴尬.

有没有人有更好的命名理念或知道与所呈现的(或目前错过的)替代方案幸福生活的框架?

java naming

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

标签 统计

java ×2

android ×1

java-8 ×1

lambda ×1

naming ×1

rx-android ×1

rx-java ×1

validation ×1