Questions tagged «primitive»

原始类型是由编程语言提供的数据类型,作为基本构建块。

8
为什么typeof为null的“对象”?
我正在阅读“面向Web开发人员的专业Javascript”第4章,它告诉我五种原语是:未定义,空,布尔值,数字和字符串。 如果null是原始的,为什么还typeof(null)返回"object"? 这是否意味着null通过引用传递(我假设此处所有对象都通过引用传递),因此使其不是原始类型?

6
为什么Java泛型不支持基本类型?
为什么Java中的泛型只能用于类,而不能用于原始类型? 例如,这可以正常工作: List<Integer> foo = new ArrayList<Integer>(); 但这是不允许的: List<int> bar = new ArrayList<int>();
236 java  generics  primitive 

11
字符串的通用类型转换
我有一个要用于存储另一个类的“属性”的类。这些属性仅具有名称和值。理想情况下,我希望能够添加类型化的属性,以便返回的“值”始终是我想要的类型。 该类型应始终为原始类型。此类继承了一个抽象类,该抽象类基本上将名称和值存储为字符串。这个子类将为基类增加一些类型安全性(并为我节省一些转换)。 因此,我创建了一个(大致)这样的类: public class TypedProperty<DataType> : Property { public DataType TypedValue { get { // Having problems here! } set { base.Value = value.ToString();} } } 所以问题是: 是否有“通用”方式将字符串转换回原始类型? 我似乎找不到任何通用的接口来转换转换(像ITryParsable这样的东西会是理想的!)。

21
人们为什么仍然在Java中使用原始类型?
从Java 5开始,我们已经对原始类型进行装箱/拆箱,因此将int其包装为java.lang.Integer,等等。 我最近看到许多新的Java项目(肯定要求JRE的版本至少为5,如果不是6的话)正在使用int而不是java.lang.Integer,尽管使用后者要方便得多,因为它具有一些用于转换的辅助方法到long的值等。 为什么有些人仍在 Java中使用原始类型?有什么切实的好处吗?

7
Java:整数等于= =
从Java 1.5中,你几乎可以互换Integer使用int在许多情况下。 但是,我发现代码中存在潜在的缺陷,这让我有些惊讶。 如下代码: Integer cdiCt = ...; Integer cdsCt = ...; ... if (cdiCt != null && cdsCt != null && cdiCt != cdsCt) mismatch = true; 值相等时,似乎错误地设置了不匹配,尽管我无法确定在什么情况下。我在Eclipse中设置了一个断点,发现Integer值都为137,并且检查了布尔表达式,并说它是假的,但是当我越过它时,它会将不匹配设置为true。 将条件更改为: if (cdiCt != null && cdsCt != null && !cdiCt.equals(cdsCt)) 解决了问题。 谁能阐明为什么会这样?到目前为止,我只在自己的PC上的本地主机上看到了该行为。在这种情况下,代码成功地进行了约20次比较,但失败了2次。该问题始终可再现。 如果这是一个普遍的问题,那应该会在我们的其他环境(开发和测试)上引起错误,但是到目前为止,在执行了数百个测试代码片段之后,没有人报告过该问题。 ==比较两个Integer值是否仍然不合法? 除了以下所有出色的答案之外,下面的stackoverflow链接还有很多其他信息。它实际上会回答我原来的问题,但是因为我没有在问题中提及自动装箱,所以它没有出现在所选建议中: 为什么编译器/ JVM不能使自动装箱“正常工作”?


6
如何将多个原始参数传递给AsyncTask?
有相关的问题,例如如何将2个参数传递给AsyncTask类?,但是我遇到了徒劳地尝试将多个基元作为参数传递给AsyncTask的困难,所以我想分享自己发现的内容。现有的问题和答案中没有体现出这种微妙之处,因此,我想帮助那些遇到与我相同的问题的人,并减轻他们的痛苦。 问题是这样的:我有多个原始参数(例如两个long),我想传递给要在后台执行的AsyncTask-如何完成?(我的回答...经过一段时间的努力...可以在下面找到。)


6
建造LISP机器需要多少个原语?十,七或五?
在此站点上,他们说有10个LISP原语。这些原语是:atom, quote, eq, car, cdr, cons, cond, lambda, label, apply。 http://hyperpolyglot.wikidot.com/lisp#ten-primitives Stevey估计有七个(或五个): LISP思想纯净的一部分是:您只需要七个(或者是五个?)原语即可构建完整的计算机。 http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html 建造LISP机器的最小原语数量是多少(即可以在LISP代码上运行eval / value函数的东西)?(那是谁?) (我可以理解您可以没有atom, label and apply)

10
基本类型“ short”-Java中的强制转换
我对shortJava中的原始类型有疑问。我正在使用JDK 1.6。 如果我有以下情况: short a = 2; short b = 3; short c = a + b; 编译器不想编译-它说它“不能从int转换为short”,并建议我将其强制转换为short,因此: short c = (short) (a + b); 确实有效。但是我的问题是为什么我需要演员表?a和b的值在的范围内short-短值的范围是{-32,768,32767}。当我想执行操作-,*,/(我没有检查其他操作)时,也需要进行强制转换。 如果对原始类型执行相同的操作int,则无需将aa + bb强制转换为int。以下工作正常: int aa = 2; int bb = 3; int cc = aa +bb; 我在设计一个类时发现了这一点,该类需要添加两个short类型的变量,并且编译器希望我进行强制类型转换。如果使用两个type类型的变量来执行此操作int,则不需要强制转换。 一句话:原始类型也会发生相同的情况 byte。因此,这可行: byte a = 2; byte …


8
通用类型检查
有没有一种方法可以强制/限制传递给基元的类型? (布尔,整数,字符串等) 现在,我知道您可以通过where子句将泛型类型参数限制为类型或接口实现。但是,这并不适合基元(AFAIK),因为它们并不具有共同点(除了对象之前有人说过!:P)。 因此,我目前的想法是咬紧牙关,做一个大的switch语句,并在失败时抛出ArgumentException。 编辑1: 只是澄清一下: 代码定义应类似于: public class MyClass<GenericType> .... 和实例化: MyClass<bool> = new MyClass<bool>(); // Legal MyClass<string> = new MyClass<string>(); // Legal MyClass<DataSet> = new MyClass<DataSet>(); // Illegal MyClass<RobsFunkyHat> = new MyClass<RobsFunkyHat>(); // Illegal (but looks awesome!) 编辑2 @Jon Limjap-好点了,我已经考虑过了。.我确定有一种通用方法可以用来确定类型是值类型还是引用类型。 这在立即删除许多我不想处理的对象时可能很有用(但是您需要担心所使用的结构,例如Size)。有趣的问题不是吗?:) 这里是: where T : struct 取自MSDN。 我很好奇..这可以在.NET …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.