问题标签 [upperbound]
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.
java - 不能将泛型 Java 类型的类分配给其 Class 类型上限为泛型超类型的变量
我使用 Java 8。在我的设计中,有一些简单的类对值参数进行建模,例如FloatParameter
或EnumParameter<E>
。A 具有这些类的通用通用超类 ( GenericParameter<T>
),它实现了参数名称及其默认值。子类实现了特定于它们的其他属性,例如FloatParameter
.
此外,我想使用参数的类型,而不管它们的具体类型如何。但我仍然想以它们是GenericParameter<T>
. 为了做到这一点,我创建了一个方法,例如process(Class<? extends GenericParameter<?>> paramType)
.
现在,问题是EnumParameter.class
不能分配给类型变量,Class<? extends GenericParameter<?>>
而FloatParameter.class
可以。
此外,我列出了类的代码以使其更加清晰和可重复:
最后,当使用非泛型基类时,没有问题:
请问,您有什么建议吗?
我可以process(Class<?> paramType)
作为一种解决方法或进行强制转换,但我想从编译器的静态类型检查中受益。
编辑:
在注册为每种参数类型生成 GUI 组件的工厂时,我想使用强制转换。代码如下所示:
在这种情况下,编译器会在编译时检查添加的参数类型。此外,代码将更加不言自明。
编辑2:
目前,我正在使用建议的方法来为该方法引入类型参数addParameterComponentFactory
。签名如下所示:
通过这个定义,我可以指定TypedParameter.class
(EnumParameter.class
- 也是一个类型参数)以及获得静态类型检查。
java - 如何类型变量允许错误类型?
运行时,以下是输出:
当它已经有上限时,怎么可能A
是 type ?Integer
String
请解释一下。
c++ - 需要将 for 循环的上限保存在额外的变量中吗?
我经常在旧代码中看到
而不是
我猜第一个实现应该防止GetNum()
在每个周期调用。但是,C++11 中的编译器是否会对第二个代码片段进行一些优化,从而使num
变量过时?
我应该总是更喜欢第一个实现吗?
如果该问题 100% 重复另一个问题,请告诉我并关闭此问题。没问题。
java - 三重嵌套 Java 泛型
我试图在更复杂的示例中理解 Java 泛型和 UpperBound 通配符。
我有一个扩展任何类型对象列表的任何列表的列表:
我在想我的第一个嵌套列表是否真的可以接受 ArrayList 的任何实现。
在我看来:
应该是子类型:
所以我尝试过这样的方式:
不幸的是,这不起作用。
我需要做的是:
我不确定这是什么原因。
@Edit 现在当我看到这个时:
是不是因为即使
是子类型
当我们将它放入另一个列表的泛型类型时,它不再是协变的吗?
java - 证明 F(x)+G(x) 的上界
我偶然发现了以下问题:如果f(x),g(x) > 1
对于每个x
,请证明/反驳以下内容:
f(x)+g(x)= O(f(x)*g(x))
我不知道如何开始证明,这对我的水平来说非常基础,请帮助。
algorithm - 寻找复杂性的下限和上限
我想找到这个算法复杂度的下限和上限
通过将其写下来并简化为
似乎复杂度的上限是 O(n^4),因为 0.5*n^4 是最重要的元素。
对于复杂度的下限,我使用了公式
对于 0 < c < 1,下限似乎是 Ω(n^3)
我的推理对这两种情况都正确吗?有没有更容易找到欧米茄的方法?感谢您的时间 :)
arrays - 如何在对数组上使用upper_bound在 C++ 中?
我想在对数组上使用upper_bound,并且也使用比较对的第二个参数的比较器函数。请帮忙。
代码:
编辑:我已经更正了返回类型,但我似乎没有得到我想要的输出。
我有一个命名时间数组,pair<int,int>
其中包含开始和结束时间分别作为第一个和第二个参数,并根据结束时间以递增的方式排序。
目前我在索引 p。我想找到数组的最大索引(= j),这样time[j].second <= time[p].first
.
例如。
time = { (1,5), (4,7) , (6, 12) } 如果 p = 2(基于 0 的索引),则 j 应为 = 0(如 5 <= 6 但 7 > 6)但上限给我 j = 2。
我怎样才能做到这一点?
algorithm - 上限高峰时段游戏
我试图了解高峰时间游戏拼图的上限复杂性。我正在处理一块9x9
板,22
车辆,包括卡车(3 格长)和汽车(2 格长)。
根据我的逻辑,考虑到汽车可以8 times
在9x9
板上朝一个方向移动,计算8^22
结果为7.34e+19
。这意味着这个谜题的上限是7.34e+19
不同的状态。
对我来说这似乎太过分了,因为我想计算我的算法与解决方案的接近程度,考虑到迭代板状态的数量。即使假设所有车辆都是卡车,因此只能移动7
时间似乎也太大了。
我的上限被高估了吗?也许我应该考虑到可移动空间的数量是唯一不被车辆占用的空间。