java - 实例化类型参数而不传递对象

标签 java oop type-parameter

我的问题与 this 非常相似问题。我希望能够实例化类型参数类型的对象,而且不需要传入“工厂”。我真的需要将所有内容都包含在一个类(class)中。

public class myClass<E> {
    E someObject;

    public myClass(){
         someObject = new E();
    }
}

以前的解决方案需要将 myClass 的构造函数更改为具有工厂参数,然后调用该构造函数,但出于我的目的,我不想修改从外部对 myClass 的任何调用。

最佳答案

问题是你不知道E是什么,也不知道如何构造它。它可以是任何类型(它是 universally quantified )。您需要提供证据证明,无论 E 是什么,它确实可以被构造。给定类型的“工厂”充当了它可以实现这一事实的一种见证。

想一想:如果我将 Void 作为参数 E 传递怎么办?您将如何构造一个 Void 类型的值?

能够为所有E构造E就像从无到有地创造出一些东西。这在逻辑上是不可能的。 ∀E。 E是一个无人居住的集合。

您真正想要的是让 E 有一个界限,或者传递一个构造函数(工厂)作为 E 在集合中这一事实的见证可构造对象。

关于java - 实例化类型参数而不传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821966/

相关文章:

java - 2 个子类中有相同的 getter 和 setter..?

scala - 抽象类型与类型参数 - 区别在哪里?

C# 在运行时获取定义字典的类型

scala - scala 中的循环类型参数定义

java - 如何强制将应用程序附加到android market?

java - ServiceLoader.load 如何与 JPMS 中的类加载器一起工作?

javascript - JS中原型(prototype)构造器的使用

java - 面板为什么不绘制(paint)?

java - Maven 幻像管理的依赖项

Javascript:从类内部创建全局作用域函数