public class Object1 {
...
private String name;
private String description;
...
Object1 () {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
public class Object2 {
...
private String name;
private String description;
...
Object2 () {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
显然,在示例中,我将它们设置为字符串属性,但实际上它们是其他类型的。
注意:Object1和Object2实际上是从SOAP服务器所需的XML模型生成的类。所以我不能修改它们。
在我的代码中,我必须访问Object1或Object2的'name'属性,这取决于不同的因素。这个点是一个事件处理程序,所以在某一时刻,它捕获一个用Object1调用的事件,而在其他时间,它捕获一个用Object2调用的事件。
我的猜测是创建一个包含这两种类型的类,并公开一个“name”属性和一个“description”属性。
这样做的标准方法是什么?
基本上有两种方法可以做到这一点:
>
使用公开getter和setter的公共接口。然后让两个类实现该接口并让处理程序使用它。
如果可能的话(这两个对象都没有扩展其他超类),您可以使用一个抽象超类,并将属性以及getter和setter放在那里。然后处理程序使用该超类。
interface Common {
String getName();
}
abstract class CommonAdapter implements Common {
String name;
String getName() {
return name;
}
//setter as well
}
//just extend the adapter and enjoy
class Object1 extends CommonAdapter {
//specific code for Object1
}
//extending not possible, so implement the interface directly
class Object2 extends SomeOtherClass implements Common {
String name;
String getName() {
return name;
}
}
class Handler {
void handle( Common c ) {
c.getName();
...
}
}
class Object1CommonWrapper implements Common {
Object1 delegate;
String getName() {
return delegate.getName();
}
}
你知道如何在创建备用本地回购时获得这些缺失的比特吗?提前感谢!
使用saveOrUpdate创建新的ebject时,hibernate将对象存储在数据库中并正确返回。但在方法的同一调用中创建了一个带有一些空列的附加对象。 数据库中的对象如下所示: 这是数据类: 这是我将对象存储到数据库的方式:public class DataUtils{private Session Session;private static DataUtils DataUtils; 和我
所以,我遇到了这样的情况 我有一个Restful控制器方法,它返回一个对象 需要你们的建议伙计们。这是在编写更多代码和节省内存之间进行权衡吗?解决这一问题的最佳方法是什么?
我有一个Card类,它包含两个构造函数,你可以在下面的代码中看到。问题是,每个卡片对象包含2个字符串和2个图像,因为我想保存这些对象,所以我必须将图像的路径保存为字符串,然后检索它们,因此需要2个构造函数。然而,使用一些打印语句,我发现每当检索到一张卡片时,就会创建两个独立的对象:一个正常的对象和另一个空的对象。我知道这是因为我在第二张卡中使用第一个构造器创建了一张新卡。有没有办法避免这样的情况,
我对编程有点陌生,我被卡住了。假设我在一个项目中有五个不同的类:foo1、foo2、foo3、foo4和foo5,它们都做不同但相似的事情。现在假设我需要为每个对象创建一个新对象,比如:foo1 bar1=new foo1();foo2 bar2=新的foo2();foo3 bar3=新的foo3();等等当然这是可行的,但如果我能在一个for循环中实例化我需要的所有对象,或者至少把我想要创建的所
问题内容: 我有一个Object1()和Object2()的列表 对象1具有多个属性,包括 对象2具有多个属性,包括 我有一些SQL背景,我想做的是在 这将导致代表左连接的。我可以用Java来对算法进行硬编码(例如。 您有更好的解决方案吗?(如果可能,请提供代码,谢谢!) 问题答案: 您正在尝试做Java真正不想要的事情。 如果能够做到,则最好 将属性添加到,该 属性 是包含与相关的对象的列表。