我有枚举课,类似这样:
public enum ProductCategory {
FOOD("FOOD"),
BEVERAGE("BEVERAGE"),
DEFAULT("DEFAULT");
private final String label;
private ProductCategory(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
}
我想编写基于ProductCategory比较两个对象的方法。因此,如果两个对象具有相同的类别(例如:FOOD),则该方法将返回true。
public boolean searchFilterFunction(Object firstObject, Object secondObject) {
if(firstObject==null || secondObject==null)
return false;
//code?
return true;
}
Enum类在一个包中,我想写的方法在另一个包中。有人可以给我一些提示吗?
答案 0 :(得分:2)
我想编写基于
比较两个对象的方法ProductCategory
Java对象没有关联的ProductCategory
。
如果您的自定义对象有一个,您可以编写一个方法来检查它,就好像它是一个基本类型:
public boolean searchFilterFunction(Product one, Product two) {
return one != null
&& two != null
&& one.getProductCategory() == two.getProductCategory();
}
答案 1 :(得分:1)
枚举常数是单例,在这种情况下,可以使用'=='运算符方便地测试它们的相等性(因为对于单身人士来说,价值永远不能与身份分开......对于普通人来说这不是真的对象实例)。例如:
<form>
<input type="radio"
id="quotation_request_payment_option_lease"
name="quotation_request_payment_option"
value="finance" checked>
<input type="radio"
id="quotation_request_payment_option_finance"
name="quotation_request_payment_option"
value="finance">
<input type="text"
name="quotation_request_payment_option_lease"
placeholder="1300"
class="quotation_request_down_payment"
value="1300">
<input type="text"
name="quotation_request_payment_option_finance"
placeholder="1500"
class="quotation_request_down_payment"
value="1500">
</form>
如果您需要测试任意类型的任意对象与枚举的相等性,那么您不需要重新发明轮子。方便类if (thisEnum == ProductCategory.FOOD) System.out.println("It's a food");
中已经有一个null安全方法可以执行此操作:
Objects