java中是否有预定义的类可以告诉我对象中是否有任何值?
我试图弄清楚结果是否为低值 例如->如果字符串为空,如果java中是否有预定义的类可以告诉我对象中是否有任何值?,java,java-8,Java,Java 8,我试图弄清楚结果是否为低值 例如->如果字符串为空,如果double则0.0,如果int则0 String method = validationObject.getString("method"); Method invokablemethod = getMethod(method, expenseitem); if (invokablemethod != null) {
double
则0.0
,如果int
则0
String method = validationObject.getString("method");
Method invokablemethod = getMethod(method, expenseitem);
if (invokablemethod != null) {
Object result = invokablemethod.invoke(expenseitem);
if (result == null) {
nullFields.put(validationObject.getString("key"));
上述代码的解释如下-:
我试图对一个对象调用一个方法,结果可以是任何类型。
因此,String
的结果可能是null
,double
类型的结果可能是0.0
,等等
现在,我可以为同一个类创建单独的类,但我想知道是否有任何预定义的类可以实现相同的功能
谢谢。没有。
根据我对您问题的理解,您需要做什么来检查返回的objects值,如下所示: 调用方法(
Object result=invokablemethod.invoke(expenseitem);
)后,需要检查返回对象(result
)的实例所属的类
然后为每个实例类型编写自己的逻辑
最简单的原型是这样的
Object result = invokablemethod.invoke(expenseitem);
if(result instanceOf String)
{
///Your logic here
}
else if(result instanceOf Integer)
{
///Your logic here
}
else if(result instanceOf Double)
{
///Your logic here
}
.
.
.
so on...
不,没有。谢天谢地,否则我们将陷入Javascript手中的“真实”价值观和各种“娱乐性”边缘案例和惊喜的混乱局面。这是一个误解。对象空表示:没有对象。与double==0.0相对应的是String==“”,即空字符串。还有没有0值的类。如果我们想在这里更精确地说,
int
和double
不是Object
s,它们是基本类型<另一方面,code>Integer和Double
是对象中的sA字段不能“不存在”。如果未在构造函数或初始值设定项语句中设置值,则它将以null
、false
、0
等开头。但如果在对象中遇到这些值,并不意味着字段“丢失”。它很可能以前有一个不同的值,后来又被更改为“低值”。在这里,您需要做什么?为什么该方法考虑<代码> null >代码> <代码>字符串< /代码>,而不是<代码> iSunType()/<代码>的值,即<代码> < <代码> > <代码> >,而另一方面,考虑<代码> 0 <代码>为“空”,用于<代码>双<代码>,而不是<代码> null <代码>,更不用说忽略NaN
,它字面上是“不是一个数字”?是的,我知道这一点,但我正在寻找预定义的类。