Java 将对象强制转换为字符串检查是否有效

Java 将对象强制转换为字符串检查是否有效,java,object,casting,Java,Object,Casting,我正在使用下面的代码,fieldValue可以有简单的属性,在我编写此代码之前,有一种方法可以检查fieldValue是否包含无法转换为字符串的对象?以避免转储 keyVal.put(fieldName, (String) fieldValue); 自从字符串 >是最终< /Cord>类(因此不能有子类),我会考虑使用 GETCype < /代码>过实例: if (fieldValue != null && fieldValue.getClass() == String.cla

我正在使用下面的代码,fieldValue可以有简单的属性,在我编写此代码之前,有一种方法可以检查fieldValue是否包含无法转换为字符串的对象?以避免转储

keyVal.put(fieldName, (String) fieldValue);

自从<代码>字符串 >是<代码>最终< /Cord>类(因此不能有子类),我会考虑使用<代码> GETCype < /代码>过<代码>实例:

if (fieldValue != null && fieldValue.getClass() == String.class)

我不能使用ti,因为字段值是object类型,可以有两个数字,所以if不会success@James伯纳斯:按类型对象,你说的是
Class
type吗?如果是这样,那么您可以使用
asSubclass()
函数将其转换为字符串类,或者使用
isAssignableFrom()
检查它是否是字符串的超类。@fge我已经尝试过它,例如,我得到了类型对象,它的值类似于10,而If通过“not work”不起作用你的意思是求值为
false
那么这是意料之中的,因为
Integer
不能转换为
String
@JamesBerners:如果你需要的是对象的字符串表示,那么我的答案可能适合你。我不能使用它,因为if不起作用,数据字段值是object类型…Java中有不能转换为String的类吗?
if (fieldValue instanceof String) {

    keyVal.put(fieldName, (String) fieldValue);

}
if (fieldValue != null && fieldValue.getClass() == String.class)