我正在尝试创建一个掩码,并使用按位运算符“&”与另一个变量进行比较并查看输出。让代码:
mask=00000
mesk=00010
mosk=$mask&$mesk
echo $mosk
echo meec
Run Code Online (Sandbox Code Playgroud)
我正在尝试扩展此功能,以能够包含更多字符(不同的错误/成功代码),但是这些行不起作用:执行脚本将打印空行,然后打印“ meec”。
我来自面向对象的编程背景,尽管我已经阅读了有关此主题的多个文档,但似乎缺少一些东西。任何帮助,将不胜感激。
编辑:由于某种原因,原来的代码不起作用,它说“找不到命令00010”> _>
所以,我看过这行代码:
Boolean variable = false;
/* ..stuff.. */
if(variable.booleanValue() == false) {
/* ..more stuff..*/
}
Run Code Online (Sandbox Code Playgroud)
而且我已经完成了,在另一个地方:
Boolean variable = false;
/* ..my stuff..*/
if(!variable) {
/* ..more of my stuff..*/
}
Run Code Online (Sandbox Code Playgroud)
问题是:第一段代码与第一段代码有什么区别/优点?
长版本是:鉴于我可以使用布尔变量作为基本(布尔)变量,做变量.booleanValue()甚至将它与布尔值进行比较有什么意义呢?如果变量未初始化,这是否也会引入空指针异常的风险(在代码不可能,但是嘿)?
在任何情况下,建议使用变量"变量"以上的variable.booleanValue?
问题很简单,但我还没有找到解决方案:
我懂了:
@RequestMapping("/example")
public class ExampleController {
@GetMapping("get")
public List<WhateverObject> getWhateverObjects(@RequestParam String objectName) {
/* Code */
}
}
Run Code Online (Sandbox Code Playgroud)
我们正在使用 SpringBoot,我希望根据定义的值列表验证“objectName”(该列表是枚举类型,但该部分很容易发生变化,所以我不介意是否需要写下这些值用手)。我所看到的关于@RequestParam对象验证的所有内容仅涵盖基本内容 ( @Min(value),@NotNull以及所有这些。
我知道 bean 的 CustomValidators,但它不适用于我当前的问题(而且我无法更改参数的类型)。Spring 是否有针对此自定义验证的特定内容,还是我需要在该/* Code */部分“直接”进行验证?
问这个问题我觉得很傻,但我已经在两个独立的公司代码库上看到了这段代码,我开始认为有一些我不知道的古老 Java 知识。
所以,我们得到了这样的代码:
/* Lot of corporate stuff */
if (ClassicUtilsClass.isNotNull(variable)) {
/* Variable handling shenanigans. */
}
Run Code Online (Sandbox Code Playgroud)
转到我们的 ClassicUtilsClass 揭示了该函数的实现:
/* Lot of useful static functions*/
public static isNotNull(Object o) {
return o!=null;
}
public static isNull(Object o) {
return o==null;
}
Run Code Online (Sandbox Code Playgroud)
我读了它,挠挠头,环顾互联网,询问同事和朋友,然后嘲笑该功能的无用。然后我换了工作,一位同事向我展示了或多或少相同的代码。
在同一个代码库中,我们有经典的“isNullOrEmpty”,它执行标准的“return object==null || object.size() == 0;”,所以我可以理解有一个函数来包装空比较......加上别的东西,但我没有看到为空检查创建一个全新的函数的意义。
我在这里失去了什么?