- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道检查可能为空的方法参数的最佳方法是什么。
第一个合理的方法是使用 Guava :
String validatedValue= Optional.fromNullable(input).or("defaultValue");
第二种合理的方法是使用常规 java。对于不了解 Guava 的人来说,它可能具有易于理解的优点。然而它仍然显示“低级”代码。
String validatedValue= input !=null ? input : "empty";
或者第三种方法。一方面,main 方法看起来不错。另一方面,它可能会产生许多小的私有(private)方法。
String validatedValue = getValidatedValue(input); //this private method will contain option two
目前看来第二种或第三种方法更好,在这种情况下不应使用Optional。有人能告诉我这种情况下的最佳实践是什么吗?
最佳答案
尽管我不会将此称为“验证”,但提供 default if null 的首选方法类似于 #2(如果不是 #2 本身) - 使用 Guava 的 Objects.firstNonNull
(从 Guava 18 开始,它被放置在 MoreObjects
中):
String value = Objects.firstNonNull(input, "empty"); // MoreObjects since 18.0
其内部功能:
return first != null ? first : checkNotNull(second);
通过静态导入,它只是:
String nonNullValue = firstNonNull(input, "empty");
但是您使用哪一个只是一个偏好问题。
附注在一种情况下,我会仅使用可选
- if you want lazy evaluated default ,但对于字符串则不是这样。仅用于空检查的私有(private)方法有点过分了,但如果您对值有其他假设,通常认为使用具有有意义名称的小型私有(private)方法是一种很好的做法(请参阅 Clean Code by Uncle Bob )。
关于java - 使用Optional验证输入法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25508281/
我刚刚启动并运行了 AVD,并让“HelloWorld”开始工作。现在我认为下一个合乎逻辑的步骤是更熟悉 I/O,所以,我想创建和输入框,并有一个按钮(或某种触发器)在用户完成输入时点击,然后读取它,
由于语言环境差异," 和 ' 符号在 gtk- 中显示为 ě 和 ´基于文本编辑器。 为了在我自己的 Gtk3 应用程序中解决这个问题,我使用 GdkEventKey 来检测用户是否按下这些按钮,如果
我需要在我的服务的不同输入法之间切换。如果我的服务本身就是一个输入法 (InputMethodService),那么我可以从它切换到不同的输入,但之后我无法返回。系统似乎只允许当前激活的输入法切换到其
我正在尝试使用Input Method Kit创建一个新的输入法。文档非常缺乏,但我相信我正确设置了项目,并且在构建后将输入法放入 ~/Library/InputMethods 中。但是,在查看语言和
如何确定当前处于 Activity 状态的输入法 - 用户可以通过长按文本编辑字段来更改输入法(软键盘) - 从代码中,如何确定用户选择了哪种输入法 最佳答案 我知道你可能不再需要这个了,但有人可能想
我目前正在开发一个 IME,它需要知道文本内容才能计算出光标所在的行和字符等内容。这适用于全屏模式下的提取文本,但我不想强制全屏。这是我当前实现的相关代码: private ExtractEditTe
我有一个加载带有表单的网页的 WebView,如果他们使用屏幕键盘作为输入法,我想尽可能使用最基本的键盘以节省屏幕空间。我还想禁用屏幕键盘中的单词建议等功能。这可能吗? 最佳答案 您不能在任何地方更改
我正在编写一个 Vim 插件来设置 iBus 引擎和输入法。到目前为止,我可以使用以下代码更改引擎: function! im#setEngine(name) python << EOF try:
我在使用韩语 Windows IME 时遇到问题。我正在为一款嵌入式软件设计虚拟(屏幕/软件)键盘。我依赖 Windows IME,它似乎适用于日语和中文。如果我使用的是物理键盘,它也可以完美地处理韩
这个问题在这里已经有了答案: How can I prevent SQL injection in PHP? (27 个答案) 关闭 6 年前。 这是我的一个login.php 的基本代码。它包含一
在 Jetpack Compose 中构建一个简单的键盘相当简单明了。 我使用这个构建了一个非常简单的 KeyRow: key .kt @Composable fun Key(modifier: Mo
我是一名优秀的程序员,十分优秀!