java - 返回类实例的抽象方法

标签 java

我有一个类,我想创建一个抽象方法来自己返回类的实例。
例如...

public abstract class A {
.........
public abstract Object getInstance();
}


public class B extends A {
 @Override
 public Object getInstance() {
    return this;
  }
}


public class C extends A {
 @Override
 public Object getInstance() {
    return this;
  }
}

上述代码中,方法getInstance()无法强制返回子类BC的实例。这是我要得到它的要点。我如何创建一个抽象方法来强制返回子类的实例?

最佳答案

您正在寻找的是通用方法:

public class Q22213940
{
    public static void main(String[] args)
    {
        final B b = new B();
        final C c = new C();

        System.out.println("b = b.getInstance() " + b == b.getInstance());
        System.out.println("c = c.getInstance() " + c == c.getInstance());
    }

    public static class C extends A
    {
        @Override
        public C getInstance()
        {
            return this;
        }
    }

    public static class B extends A
    {
        @Override
        public B getInstance()
        {
            return this;
        }
    }

    public abstract static class A
    {
        public abstract <T> T getInstance();
    }
}

为什么?这没有任何功能性目的。

你为什么要这样做我不知道,这没有逻辑意义,你必须有一个对象的引用才能调用.getInstance();只会返回您已有的相同引用。

关于java - 返回类实例的抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213940/

相关文章:

java - 结构数组总是比数组结构快?

java - jooq oracle 存储过程与 ARRAY,无效的列类型 : 1111

java - 将对象列表转换为属性映射

java - 获取数据存储时间

java - 将字符串动态添加到对象[]

java - 如何知道一个页面是否在tomcat中被保护

java - 是否可以更改 Java 中垃圾收集器的频率?

java - 从套接字流读取时是否需要线程 sleep ?

java - ClassNotFoundException:twitter4j.conf.PropertyConfigurationFactory:Android

java - 字符串中的换行符未写入文件