我在Google上搜索时发现了这段代码:
public interface Combine {
// Combines 2 objects
public Object combine(Object o1, Object o2);
}
我想使用上面的代码在主类中组合两个对象。我如何声明一个Combine对象来实现我的目的?
答案 0 :(得分:3)
您将创建一个实现Combine
接口的类,并覆盖public Object combine(Object o1, Object o2)
以执行您的情况中的任何操作,以组合这两个参数。
class Droplet implements Combine {
@Override
public Object combine(Object dropOne, Object dropTwo) {
//write combine code for droplets and return a newly combined droplet
}
}
使用泛型查看Marcelos答案以获得更精彩的解决方案 - 这样您就可以传入您感兴趣的特定类型,而不仅仅是Object
。
答案 1 :(得分:3)
根据类别,“组合”的逻辑会改变。首先,该类需要实现Combine
接口,然后您必须为combine()
方法编写逻辑,例如:
public interface Combine<T> {
// Combines 2 objects
public T combine(T o1, T o2);
}
public class BagOfOranges implements Combine<BagOfOranges> {
private int quantity;
public BagOfOranges(int quantity) {
this.quantity = quantity;
}
public BagOfOranges combine(BagOfOranges b1, BagOfOranges b2) {
return new BagOfOranges(b1.quantity + b2.quantity);
}
}
答案 2 :(得分:1)
那只是一个界面。它没有描述实现。您需要创建一个implements Combine
。
public Foo implements Combine {
// snip...
public Object combine(Object o1, Object o2) {
// You need to implement this method.
}
}
答案 3 :(得分:1)
试试这个:
public class Combineinator implements Combine
{
public Object combine(
final Object object1,
final Object object2)
{
// implementation details left to the student.
}
}
答案 4 :(得分:1)
public class MyCombiner implements Combine {
public Object combine (Object o1, Object o2) {
//logic to combine the objects goes here (i.e. the hard part)
}
}
换句话说,您需要实际编写代码来组合对象,然后将其放在如上所述的表单中。如果您需要关于组合两个特定对象的建议,您应该在另一个问题中提出这个问题。
答案 5 :(得分:1)
您的代码只是一个界面。您需要实现它以定义您的'组合对象'
一个简单的实现可能是这样的。
这里的CombinedObjs只需保持对象的引用需要组合。
public class CombinedObjs implements Combine {
private Object Object1 = null;
private Object Object2 = null;
public Object combine(Object o1, Object o2){
this.Object1 = o1;
this.Object2 = o2;
return this;
}
// You can provide setters to get the individual objects
public Object getObject1(){
return this.Object1;
}
public Object getObject2(){
return this.Object2;
}
}
答案 6 :(得分:0)
您无法创建Combine对象的实例,因为它是一个接口。你应该创建一个扩展Combine接口的类。