Java - 尝试根据参数中的 2 个字符串值抛出错误
Java - Trying to throw an error based on 2 string values in the parameter
我正在尝试根据 2 个条件验证参数。
必须是字符串,不区分大小写。如果参数不等于“title”或“author”,它应该抛出一个错误。代码的第一部分似乎有效,但第二部分说它总是正确的,每次我都会出错。这是部分代码。
if(!"title".equalsIgnoreCase(property))
{
throw new IllegalNovelPropertyException("Bad Property");
}
if(!"author".equalsIgnoreCase(property))
{
throw new IllegalNovelPropertyException("Bad Property");
}
如果代码有效,那就太好了。但是,您可能想写
if(!property.equalsIgnoreCase("title") && !property.equalsIgnoreCase("author")) {}
有两个变化:
首先,if(! )
语句合并为if(! && ! )
。这样更简单,避免编写不必要的语句。
其次,if(!"title".equalsIgnoreCase(property))
改为
if (!property.equalsIgnoreCase("title"))
将.
左边的变量和被比较的字符串写成equalsIgnoreCase()
的参数是比较常用的写法;也许这是一个偏好问题而不是逻辑问题,尽管它可能很容易成为一个实用性问题。查看它,或者只是将其更改为通用符号以确保安全。直觉上,它们看起来是一样的:
你的方式:if (!variable == string)
常用方式:if (!string == variable)
*请注意,出于此逻辑的目的,
== = .equals()
:)
这很有趣,所以更清楚:
==
等同于 .equals()
另请注意
(== == .equals()) = false
:) 在 Java,
即==
,一个布尔比较器,不等于 .equals()
,一个使用布尔比较的字符串比较器。您 可以 使用 ==
来比较字符串,但是 .equals() 更强大:如您所见,它可以使用更高级的比较,例如 .equalsIgnoreCase()
。
有了这个背景,原来的逻辑就更简单了:
你的方式:if (!b == a){}
常用方式:if (!a == b){}
如果将其简化为这些语句,则这两个符号看起来相等。
所有这些只是说明您可能想要重新安排您的语法;如果您仍然遇到错误,请告诉我们。
我正在尝试根据 2 个条件验证参数。 必须是字符串,不区分大小写。如果参数不等于“title”或“author”,它应该抛出一个错误。代码的第一部分似乎有效,但第二部分说它总是正确的,每次我都会出错。这是部分代码。
if(!"title".equalsIgnoreCase(property))
{
throw new IllegalNovelPropertyException("Bad Property");
}
if(!"author".equalsIgnoreCase(property))
{
throw new IllegalNovelPropertyException("Bad Property");
}
如果代码有效,那就太好了。但是,您可能想写
if(!property.equalsIgnoreCase("title") && !property.equalsIgnoreCase("author")) {}
有两个变化:
首先,if(! )
语句合并为if(! && ! )
。这样更简单,避免编写不必要的语句。
其次,if(!"title".equalsIgnoreCase(property))
改为
if (!property.equalsIgnoreCase("title"))
将.
左边的变量和被比较的字符串写成equalsIgnoreCase()
的参数是比较常用的写法;也许这是一个偏好问题而不是逻辑问题,尽管它可能很容易成为一个实用性问题。查看它,或者只是将其更改为通用符号以确保安全。直觉上,它们看起来是一样的:
你的方式:if (!variable == string)
常用方式:if (!string == variable)
*请注意,出于此逻辑的目的,
== = .equals()
:)
这很有趣,所以更清楚:
==
等同于 .equals()
另请注意
(== == .equals()) = false
:) 在 Java,
即==
,一个布尔比较器,不等于 .equals()
,一个使用布尔比较的字符串比较器。您 可以 使用 ==
来比较字符串,但是 .equals() 更强大:如您所见,它可以使用更高级的比较,例如 .equalsIgnoreCase()
。
有了这个背景,原来的逻辑就更简单了:
你的方式:if (!b == a){}
常用方式:if (!a == b){}
如果将其简化为这些语句,则这两个符号看起来相等。
所有这些只是说明您可能想要重新安排您的语法;如果您仍然遇到错误,请告诉我们。