问题标签 [instantiation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 有没有一种优雅的方法来实例化带有参数的变量类型?
这是不合法的:
为此,您必须对 T 的类型对象进行一些反思,或者您必须使用 Activator.CreateInstance。两个都很恶心。有没有更好的办法?
c++ - 甚至在创建该类之前声明一个对象
无论如何,在用 C++ 创建类之前声明一个类的对象吗?我问是因为我正在尝试使用两个类,第一个类需要在其中包含第二个类的实例,但第二个类也包含第一个类的实例。我意识到您可能认为我可能会陷入无限循环,但实际上我需要在第一个类之前创建第二个类的实例。
java - JUnit TestCase 对象实例化
是否使用新的(或不同的)TestCase
对象实例来运行 JUnit 测试用例中的每个测试方法?或者一个实例被重复用于所有测试?
运行此测试时,创建了多少类实例MyTest
?
如果可能,请提供指向文档或源代码的链接,我可以在其中验证行为。
php - PHP 应用程序可能存在循环依赖问题
我遇到了我认为是我的 PHP 应用程序的循环依赖问题。如果这不正确,请告诉我。情况如下:
两个类,LogManager 和 DBSession。
DBSession 用于与数据库交互,LogManager 用于记录到文件。两者都在我的应用程序中广泛使用。创建 DBSession 实例时,必须通过构造函数参数为其提供 LogManager 实例。这是因为 DBSession 有时会将信息记录到文件中,并且会使用 LogManager 实例来执行此操作。
现在,我想扩展 LogManager 以便它也可以记录到数据库表,而不是文本文件。当然,我更喜欢重用现有的类,但我很快意识到这带来了一个有趣的情况。
DBSession 已经需要一个 LogManager 实例来构建。如果我想在 LogManager 中重用 DBSession 类,它现在需要一个 DBSession 实例。我怎样才能满足这两个要求?显然,我的方法一定有问题。
你会建议我如何解决这个问题?
提前谢谢各位。
c# - 从字符串创建类的实例
有没有办法根据我在运行时知道类的名称这一事实来创建类的实例。基本上我会在一个字符串中包含类的名称。
java - 在 Java 中创建具有默认值的 Annotation 实例
如何创建以下注释的实例(所有字段都设置为默认值)。
我试过new Settings()
了,但这似乎不起作用......
java - Java 中的 KeyListener 是抽象的;不能实例化?
我正在尝试在 java 中创建一个 Key Listener 但是当我尝试
Netbeans 告诉我 KeyListener 是抽象的;无法实例化。我知道我缺少这个关键侦听器的其他部分,但由于这是我第一次使用关键侦听器,我不确定我还需要什么。为什么要告诉我这个?
谢谢,
托梅克
java - 从 ColdFusion 调用 .jar
我有一个 .jar 文件,我已将它放在我的 D:\Coldfusion8\wwwroot\web-inf\lib\ 目录中。该文件是 abcdef.jar
这是我第一次这样做,不确定我的 createObject() 中的路径应该是什么。
但是当我运行它时,我得到
我在路径中缺少什么?
c# - C# - 根据泛型类中提供的接口实例化一个类
我有一个通用函数,它将接口作为一种类型,现在在一种情况下,我必须根据接口创建一个新类。我一直在考虑它,解决它的一种方法是使用 IoC,但我希望有另一种方法,因为 IoC 似乎有点矫枉过正。
下面是使用访问者模式的尝试:
如果我得到一个对象而不是接口,那么我可以使用访问者模式来确定要实例化的类,但根据提供的接口,我似乎无法弄清楚这一点。
我的另一个想法是,我是否可以像 or 一样做出 where 声明?
我希望问题很清楚:)
-标记
谢谢你的回复。
问题是该方法可以分配有许多不同的接口,例如:
RepositoryManager 类:
所以使用T item = (T)CreateNew(new T(), id);
不起作用,因为我必须告诉它 T 可以是 Iabc 或 Ixyz 类型,但是当我这样做时,我收到以下错误:
以下方法或属性之间的调用不明确:RepositoryManager<T>.CreateNew(IMedicament, string)
和RepositoryManager<T>.CreateNew(IRefund, string)
除了多次复制代码之外,如果我能做到这一点,那就太好了。