首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是更喜欢使用record.getAttribute或record.getAttributeAsTYPE?

什么是更喜欢使用record.getAttribute或record.getAttributeAsTYPE?
EN

Stack Overflow用户
提问于 2012-11-19 17:22:23
回答 1查看 306关注 0票数 0

我在开发环境中使用MySQL,但是我的应用程序可以在SQLServer上进行暂存环境。

在我的数据库中,布尔值(boolean)记录为VARCHAR,整数(int)记录为VARCHAR

record.getAttributeAsTYPE类似于getAttributeAsBoolean(java.lang.String)的方法合适/肯定要使用吗?还是使用像type myvar = new TYPE(record.getAttribute("COLUNM_NAME"))这样的东西更好呢?

在解决方案1和解决方案2之间使用什么更好?

例1:

代码语言:javascript
复制
boolean mybool = record.getAttributeAsBoolean("COLUNM_NAME"); // Solution 1

boolean mybool = new Boolean(record.getAttribute("COLUNM_NAME")); // Solution 2

例2:

代码语言:javascript
复制
int myint = record.getAttributeAsInt("COLUNM_NAME"); // Solution 1

int myint = new Interger(record.getAttribute("COLUNM_NAME")); // Solution 2

对我来说,VARCHAR可能更接近java.lang.String而不是java.lang.Booleanjava.lang.Integer。所以我认为“解决方案2",在这些例子中,是更确定的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-19 18:30:44

那得看情况。如果您完全确定属性的值是您所需的类型,则应该使用getAttributeAsTYPE()。您的数据源(如果使用ds.xml)是如何定义该字段的?它可能只是被smartGWT隐式转换。

看起来您的值存储为String (例如: record.setAttribute("COLUMN_NAME","12345"),调用record.getAttributeAsInt("COLUMN_NAME")可能会导致类型异常失败。在这种情况下,您唯一能做的就是实例化整数或静态地转换它: Integer.parseInt(recrod.getAttribute())。

getAttributeAsTYPE很方便,我尽可能多地使用它,但是您必须确保在设置时值的类型是正确的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13458926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档