【发布时间】:2012-08-10 11:08:50
【问题描述】:
我有这个问题。但是我很难解释,因为我不知道要使用的确切术语。希望有人能理解。我会尽力描述最好的。我觉得这和parsing有很大关系
假设有两个类。在这两个类中我都有一些变量,比如字符串(为了简单起见,变量类型可以是任何类型),它们具有相似的名称。
Eg:
class ClassA{
String x,y,z;
}
class ClassB{
String x,y,z;
}
现在,我需要的是,我需要将一个类的变量值的值复制到其他类对应的变量中。
Eg:
ClassA aa=new ClassA();
ClassB bb=new ClassB();
//set bb's variables
aa.x=bb.x;
aa.y=bb.y;
aa.z=bb.z;
这样。
但请注意,我需要的不是上述方法。我希望有一种方法可以编写一个简单的方法,以便通过传递给它的名称来识别相关变量。然后它会做相应的赋值。
我想象的方法是这样的,
void assign(String val){
// aa.<val>=val
}
例如,如果您将bb.x 传递给assign(...) 方法,那么它将执行aa.x=bb.x 赋值。
希望这足够清楚。必须有更好的方法来解释这一点。如果有人知道,请编辑帖子(+标题)以使其更清晰(但请保存我的想法)..
如果有办法实现这一点,请告诉我。
谢谢!
【问题讨论】:
-
你真的需要两节课吗?不能只是同一类的两个实例吗?然后你可以只使用 clone() 方法。
-
你可以试试 Map 或 hashmap... 或者做一些反射。这类东西必须是专门构建的,所以为什么不与我们分享一个常见的用例呢?
-
@visionary 不。不能去克隆。上了两节课。 :(
-
@Shark 好吧,我的问题是寻求下面建议的 Jean-RémyRevy 和 SeanPatrickFloyd 之类的解决方案。不要与类名混淆。这是我能做的最好的解释。如果我尝试提供更多细节会很复杂。
-
感谢@Shark,如果您能解释一下
reflection,将不胜感激。我还没有遇到过..(你最好把它作为一个答案,因为这不喜欢扩展讨论:D)
标签: java parsing javabeans dozer