- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
与通常的 if (myString == null || myString.equals(""))
不同,我倾向于使用 org.apache.commons.lang.StringUtils
类并执行 if (StringUtils.isEmpty(myString))
。
然而,这 - 至少我这样做的方式 - 带来了巨大的缺点:因为 FindBugs - 或编译器警告机制,f。前任。来自 Eclipse - 将不再看到显式空检查,它将不再将 myString
视为潜在的空指针,因此它将不再发出有关潜在(或确定)空指针的警告,并且在我看来,这些警告非常有用。
示例(已添加):
import org.apache.commons.lang.StringUtils;
public class TestWarning
{
void testWarning(String myString)
{
//if (myString == null || myString.equals("")) // With this, the last line shows the warning.
if (StringUtils.isEmpty(myString)) // With this, no warning.
{
// Anything.
}
int x = myString.length(); // Warning is here: "Potential null pointer access: The variable myString may be null at this location"
}
}
所以我只是想确保没有办法消除或最小化这一缺点,以便可以使用 StringUtils.isEmpty
并仍然收到空指针警告。也许像 @Nullcheck
这样的注释可以添加到 isEmpty
方法或其他东西?
已添加:例如,是否可以创建一个自定义注解,如 @Nullcheck
,将其添加到 isEmpty
的参数中,如 public static boolean isEmpty(@Nullcheck String str)
只是为了表明该方法对该 arg 进行空检查,并使编译器警告机制或 FindBugs 处理 if (StringUtils.isEmpty(myString))
就像显式空检查一样?
最佳答案
如果你用@Nullable注解myString,即
void testWarning(@Nullable String myString)
那么至少 eclipse 会在您取消引用时报告警告。
我同意 FindBugs 也应该对此发出警告,但我也无法让它这样做。
关于java - 使用 StringUtils.isEmpty 而不会丢失有关空指针的编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24056657/
var foo = { bar: ''}; 我经常看到这样的代码: if(foo.bar.isEmpty()){ //this line most of the time breaks
我希望能够编写一个条件,使我可以搜索所有具有特定DevelopmentOfInterest(hasMany)或根本没有任何线索的线索。 我的域模型如下所示: Lead { Set develop
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
如果您已经知道集合不为空,什么对性能更好。使用 Apache Commons 库中的 !collection.isEmpty() 或 CollectionUtils.isNotEmpty(collec
TextUtils.isEmpty(string)和string.isEmpty有什么区别? 两者都执行相同的操作。 使用 TextUtils.isEmpty(string) 有好处吗? 最佳答案 是
我知道这很奇怪,但这就是我所拥有的。 我正在编写单元测试来检查 Android 应用程序的逻辑。在测试执行期间,我看到它在那一行失败了: if (!TextUtils.isEmpty(fromFile
虽然 oracles 方法的描述说仅当字符串长度为 0 时才返回 true,但 string utils 方法的描述说该方法还会检查字符串是否为“null”。那我应该用什么方法呢?如果字符串的长度为
你能帮我解决这个 VBA 代码吗?我认为问题在于 IsEmpty 函数中的 Cells 函数,即 Excel 指责错误的行。由于评论,我做了一些更改,但它仍然没有运行。问题在于 IsEmpty 函数的
我正在尝试弄清楚一些基本的事情。我在探索标准库ArrayList.java时发现ArrayList具有方法isEmpty()的实现。 ArrayList.java: public boolean is
我通过以下方式在 Controller 中查看: $data = Lib::index(); $view = View::make('index') ->with('data'
我必须优化和算法,我注意到我们有一个像这样的循环 while (!floorQueues.values().stream().allMatch(List::isEmpty)) 似乎在每次迭代中它都会检
我有关于代码装饰的问题。 例如我应该处理来自 DAO 的对象 val user1 = DAO.get(token) val user2 = DAO.get(token) val user3 = DAO
我有一个双向链表,并且我编写了一个函数来检查列表是否为空。 函数代码: int isEmpty(list *l) { if(l->head== NULL && l->tail== NULL)
我在实现扩展函数以确定实体是否包含任何结果时遇到了一些问题。最终目标是确定实体是否有结果,如果没有,则在应用程序启动时将其播种(对于某些实体,如国家/地区列表等...) 这是我能够得到的地方,但是 s
这两种方法有什么区别? public boolean nameControl(String str) { if (str.trim().isEmpty()) return false;
我正在寻找一个 if 语句来检查输入字符串是否为空或仅由空格组成,如果不是则继续下一个输入。下面是我目前的代码,当我输入空格时会出错。 name = name.trim().substring
我无法在将提供的值缩小为空对应值的类型约束方面正确实现通用 isEmpty(value)。 用例: function getCountryNameById(countries: LookupItem[
我正在 Eclipse 中处理一个学校项目,当我尝试在 String 上使用 isEmpty() 方法时,Eclipse 显示以下错误: The method isEmpty() is undefin
当我尝试使用 isEmpty 函数检查模型是否为空时,Laravel 5.6 出现错误。 型号: namespace App\Models\Projectmanagement; use Illumin
isEmpty的实现在 Option很简单 - 这是一个草图: abstract class Option[+A] { def isEmpty:Boolean } object
我是一名优秀的程序员,十分优秀!