Tag: 原始类型

为什么原始类型会先调用而不是包装类?

public class A { public void test(Integer i) { System.out.println(“In Wrapper Method”); } public void test(int i) { System.out.println(“In primitive Method”); } public static void main(String args[]) { A a = new A(); a.test(5); } } 当我从main调用test方法并传递整数参数时,它将调用接受原始类型作为参数的方法。 我只是想知道为什么它调用原始类型方法而不是接受包装类作为参数的方法? 是否有任何规则,java遵循调用方法? 谢谢,

对具有原始数字返回类型的方法的反思

我目前正在开发一个小型框架来收集OSGi系统中的指标。 它的核心是注释@Metric,它指示服务的给定方法在被询问时可以提供度量(例如数值)。 这些方法看起来像: @Metric public int getQueueSize() {…} 要么 @Metric public double getAvgTaskTime() {…} 我正在使用reflection来检查服务实现类并注册使用@Metric注释的方法。 作为一个完整性检查,我正在检查该方法确实提供了一个数值。 我试过这个并且失败了: for (Method method: metricSource.getClass().getMethods()) { if (method.isAnnotationPresent(Metric.class) && Number.class.isAssignableFrom(method.getReturnType()) { // add method for later process } 然后,稍后在处理器上,我会做: Number value = (Number) method.invoke(target, obj[]); 事实certificate,对于一个原始类型,你会得到例如int.class并且它不能分配给Number.class,而盒装类型Integer.class则是。 该死的。 继续。 然后我创建了一个Map<Class, Extractor> ,其中Extractor接受一个类并将一个参数强制转换为该类: public NumberExtractor(Class clazz) { this.clazz = clazz; } […]

有没有办法检查instanceof基元变量java

我们可以通过使用instanceof运算符知道对象引用是一个测试。 但是有没有运算符来检查原始类型。 例如: byte b = 10; 现在,如果我只考虑值10 。 有什么方法可以发现它被声明为一个字节?

为什么Java原始数据类型不是Java数据类型?

我有一个问题,为什么Java原始数据类型只是被称为“Java数据类型”或类似的东西?

指针如何在Java中使用原始类型?

我正在阅读什么是NullPointerException,我该如何修复它? 在接受的答案中,我读到了一些我不太了解的内容: int x; x = 10; 在这个例子中,变量x是一个int,Java会将它初始化为0。 当您在第二行中将其分配给10时,您的值10将被写入x指向的内存位置。 我想原始类型,变量是实际值的内存地址; 对于复杂类型,变量仅仅是指向实际值的指针的内存地址。 但上面引用的答案告诉我,我错了。 它说“x指向的内存位置”。 因此,如果x指向存储实际值的内存地址,那么原始类型与复杂类型的不同之处是什么? 我不知道原始类型甚至有指针。 指针如何与原始类型一起使用?

在Java中使用Hash加倍

我想知道如何在Java中散列一个double? 我已经散列了其他原始数据和对象。 我以为我可以使用哈希码方法? 从我所看到的,这看起来非常复杂。 我遇到了一些关于创造种子的事情。 我想知道如何解决这个问题。 希望将我的哈希码的其余部分用于具有double的类? 我想知道我是否有问题试图在java中散列arraylists,数组和其他对象。 我的一些课程包含了arraylists。 非常感谢

我可以通过Java中的引用传递原始类型吗?

我想调用一个可能采用不同版本的方法,即类型为输入参数的相同方法: 布尔 字节 短 INT 长 我想这样做的方法是“重载”方法(我认为这是正确的术语?): public void getValue(byte theByte) {…} public void getValue(short theShort) {…} … etc … …但这意味着我必须通过引用传递原始类型…类似于C ++,其中方法具有外部效果,它可以在其范围之外修改变量。 有没有办法在不创建新类或使用原始类型的Object版本的情况下执行此操作? 如果没有,有关替代战略的任何建议吗? 让我知道是否应该进一步解释清除任何混淆。 UPDATE 我实际上要做的是从一组位构造基本类型。 因此,如果我正在处理方法的字节版本,我希望我的工作能够得到8位并返回字节(因为我无法通过引用传递)。 我问这个问题的原因是因为我用bit做的工作是非常重复的,我不想在不同的方法中使用相同的代码。 所以我想找到一种方法让我的ONE方法知道我正在谈论多少位…如果我正在使用一个字节,那么8位,如果我正在处理一个短的16位等等…

所有原始Java类型的参数?

我有这个function; static public void Print(Object[] arr) { for(int i = 0; i ” + arr[i]); } 我想对每个基本类型数组使用它。 如果不为每种原始类型覆盖它,有没有办法做到这一点? 注意:这只是一个示例函数。 如果有的话,我想知道这项技术。

为什么允许将原始数据类型添加到ArrayList?

我知道可以将Integer对象添加到Integer类型的ArrayList中。 这对我来说很有意义。 喜欢这个: ArrayList list = new ArrayList(); list.add(new Integer(3)); 但为什么可以添加像int而不是Integer这样的原始数据类型? 喜欢这个: ArrayList list = new ArrayList(); list.add(3); 为什么允许?

空Java字符串的大小

我听到一位同事说如果我在Java类中删除一个String成员,即使String为空,我也会支付“24字节”。 这是准确的吗? Integer,Float,Double是一样的吗? (而不是int,float,double,每个只有4,4和8个字节)。