在我的数据库应用程序中,有时我必须处理数据库中的null
字符串。在大多数情况下,这是很好的,但在以表单显示数据时,Swing组件(例如使用JTextField
)不能处理空字符串。(.setText(null)
失败)
(编辑:--我刚刚注意到JTextField
实际上接受null
字符串,但是对于其他所有意外的null
值可能导致问题的情况,问题仍然存在。)
空值没有特殊意义,它们可以(必须)视为空字符串。
处理这个问题的最佳做法是什么?不幸的是,我无法更改数据库。
在调用setText()
null
,这是一个静态方法,它在从database?null
、strings?null
值过滤为空字符串。你的建议发布于 2008-11-07 04:28:12
从SQL角度尝试:
select ISNULL(column_name,'') from ...
发布于 2008-11-07 10:02:56
使用Beans绑定API将实体对象的值绑定到SWING小部件。Beanins绑定将透明地处理空值,并且不会用空字符串替换空值。
发布于 2008-11-07 18:34:07
我认为您的所有答案都是合理的,但是由于您标记了这个“最佳实践”,我想提醒您注意空对象设计模式。在任何需要保护的类看来值得的地方,都要为该类的"null“对象编写特殊的实例化代码。其思想是这个“空”对象是真实的,无论您要求它做什么,它都可以正常运行。空"String“对象可以提供您想要的任何东西,因为它的值。
这种模式还意味着您可以消除大量的空检查,并且代码更加健壮。它确实消耗了一些CPU,将消息发送到空,让它们什么也不做,所以当期望大量的对象为null时,就不太理想了。
https://stackoverflow.com/questions/271888
复制相似问题