java 'RequestV 1'是抽象的;无法示例化

rlcwz9us  于 2023-04-28  发布在  Java
关注(0)|答案(2)|浏览(135)

下面是Java代码:

RequestV1 request;
...
validateRequest(request);
....
public void validateRequest(final XmlObject request){...}

我创建了这个Java对象:

@Getter
@Setter
public class RequestV1 {

    public static class Factory {
        public static RequestV1 newInstance() {
            return new RequestV1();
        }
    }
    ......
}

validateRequest(request);这一行出现错误:

Required type: XmlObject
Provided: RequestV1

我试着像这样实现抽象类:

import org.apache.xmlbeans.XmlObject;

@Getter
@Setter
public abstract class RequestV1 implements XmlObject {

    public static class Factory {
        public static RequestV1 newInstance() {
            return new RequestV1();
        }
    }

但是在这行return new RequestV1();我得到错误:'RequestV1' is abstract; cannot be instantiated
我需要这个新示例像这样使用它:RequestV1 requestV1 = RequestV1.Factory.newInstance();
你知道我如何编辑RequestV1或重组它,以满足所有需求吗?
我试着像这样实现抽象类:

import org.apache.xmlbeans.XmlObject;

@Getter
@Setter
public abstract class RequestV1 implements XmlObject {

    public static class Factory {
        public static RequestV1 newInstance() {
            return new RequestV1();
        }
    }
nuypyhwy

nuypyhwy1#

必须实现接口的方法你的类正在实现。唯一的捷径是是否有一个实际的接口实现供用户扩展。

jhkqcmku

jhkqcmku2#

类型要求

您的要求是:

  • 对象request可以作为参数传递给方法

该方法具有以下签名:

public void validateRequest(final XmlObject request)

表示它接受XmlObject类型的示例。因此,一个对象必须(1)是(2)类实现接口XmlObject的示例

设计满足此需求的类

1.要创建示例,类不能是abstract,而是具体的。
1.类必须实现XmlObject

public class RequestV1 implements XmlObject {
  // ..
}

同时满足:(1)具体的和可示例化的(=不是抽象的)和(2)实现XmlObject。

相关问题