相关疑难解决方法(0)

将派生类传递给需要覆盖期望基类的方法

我有一个类A,带有抽象方法doAction(BaseClass obj),期望一个类型为BaseClass的参数

public class A {
    //....
    abstract void doAction(BaseClass obj);
    //....
}
Run Code Online (Sandbox Code Playgroud)

现在,我有另一个需要扩展A的B类.但是,B的doAction方法需要使用扩展BaseClass的对象DerivedClass.

public class B extends class A {
     //..
     void doAction(DerivedClass obj) {
          obj.callMethodAvailableOnlyInDerivedClass();
      }

 }
Run Code Online (Sandbox Code Playgroud)

我如何处理这种情况,我需要将类型为DerivedClass的param传递给在期望BaseClass时被覆盖的方法?

谢谢!

java polymorphism inheritance

15
推荐指数
1
解决办法
4596
查看次数

使用JAXB生成的XML中的重复字段

这是我的情景.我有一个通用类:

public class Tuple<T> extends ArrayList<T> {
  //...
  public Tuple(T ...members) {
    this(Arrays.asList(members));
  }

  @XmlElementWrapper(name = "tuple")
  @XmlElement(name = "value")
  public List<T> getList() {
    return this;
  }
}
Run Code Online (Sandbox Code Playgroud)

和一个儿童班:

public class StringTuple extends Tuple<String> {
  public StringTuple(String ...members) {
    super(members);
  }

  //explanation of why overriding this method soon ...
  @XmlElementWrapper(name = "tuple")
  @XmlElement(name = "value")
  @Override
  public List<String> getList() {
    return this;
  }
}
Run Code Online (Sandbox Code Playgroud)

这里引用了这些类:

@XmlRootElement(namespace = "iv4e.xml.jaxb.model")
public class Relation {
  private Tuple<StringTuple> relationVars;
  //...
  @XmlElementWrapper(name = "allRelationVars")
  @XmlElement(name …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb jaxb2

8
推荐指数
1
解决办法
6635
查看次数

标签 统计

java ×2

inheritance ×1

jaxb ×1

jaxb2 ×1

polymorphism ×1

xml ×1