使用Java编写代码时的“最佳实践”快速提问。我有一个可以使用两种不同类型的对象构建的类(HashMap或我称之为SearchTerm的单独类)。在客户端通过构造函数提供null参数的情况下,我通常有非常好的处理程序,但如果确实发生这种情况,则VM会崩溃并说参数不明确。 (这是有道理的,因为null参数可能是指任何一个对象。)
这些情况通常如何处理?允许单独的对象作为参数是不好的形式吗?
答案 0 :(得分:4)
除非我误解了某些内容,否则只有在尝试使用null
作为参数调用构造函数时才会出现此歧义错误。如果要解决此问题,可以将参数强制转换为要使用的类,如下所示:
new YourClass((SearchTerm) null);
这样编译器知道即使参数是null
,它也应该像null
的{{1}}实例一样对待它。
如果您的SearchTerm
实例恰好为null,则应该没有问题:
SearchTerm
应该没有歧义错误,因为编译器知道实例的类型,即使它是null。