gpt4 book ai didi

java - 确定对象属性的数据类型

转载 作者:行者123 更新时间:2023-11-30 08:09:40 24 4
gpt4 key购买 nike

我在 Java/Groovy 中有两个相似的对象,假设:

class a {
Date creation
}

class a {
String creation
}

在我的程序中,有一个开关决定我应该使用什么对象(Groovy 代码):

def obj
if(/* certain criteria for a */) {
obj = new package.foo.a()

// ...
// Or some other process aside from initialization.
}
else if(/* certain criteria for the another a */) {
obj = new package.bar.a()

// ...
// Or some other process aside from initialization.

}
else {
obj = null
}

在代码的后面,我需要根据属性创建的类型来确定我应该执行的过程:

if(obj.creation instanceof Date) {
obj.creation = new Date()
}
else if(obj.creation instanceof String) {
obj.creation = '1995-08-17'
}

上面的代码不起作用。有办法做到这一点吗?当然,如果无法获取属性的数据类型,我总是可以执行以下操作:

if(obj instanceof package.foo.a) {
obj.creation = new Date()
}
else if(obj instanceof package.bar.a) {
obj.creation = '1995-08-17'
}

最佳答案

您可以尝试获取对象的 class 并检查它是否与您正在检查的任何类型具有相同的 class:

if(obj.creation.getClass().equals(Date.class)) {
obj.creation = new Date();
}
else if(obj.creation.getClass().equals(String.class)) {
obj.creation = "1995-08-17";
}

关于java - 确定对象属性的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32263019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com