java中 定义 int... value 是啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中 定义 int... value 是啥意思?相关的知识,希望对你有一定的参考价值。
int 后面的 ... 三个点 什么意思?
intValue()是java.lang.Number类的方法。Number是一个抽象类。java中所有的数值类都继承它。也就是说,不单是Integer有intValue方法,Double,Long等都有此方法。
此方法的意思是:输出int数据。
每个数值类中具体的实现是不同的。例如:
Float类和Double类的intValue方法,就是丢掉了小数位,而Long的intValue方法又不一样的。具体的用法你可以参考jdk的源码和API。 参考技术A 定义一个int类型的变量,变量名字叫value。 也可以给他赋值 例如: int value =5; 当然也可以不赋值 int value; (全局变量可以这么写,局部的就必须赋值了)。 后面如果想给他赋值就直接value = 5; 参考技术B 不知道你看到这个是不是在方法的参数列表中看到的。
方法的参数列表中这么写,代表这里传入方法的是一个int数组!
比如
publicstaticvoid test(int... is)
System.out.println(is);
publicstaticvoid test1(int[] is)
System.out.println(is);
这两种写法是一样的! 参考技术C 我早就说了,是可变参数的意思,有些人回答还是不要误人子弟的好 参考技术D 可变参数
java中,Node node = (Node) value; 其中Node是接口,这个语句是啥意思啊?谢谢。
java的类型的强制转换,这里value一般是Node的子类吧(可能是Object类型了表现为),
Node node = (Node) value;强制转换后就可以直接调用Node的方法了。追问
value是Object类型的,那Node的方法是在另外一个类实现的呀,比如是类Test,为什么不是调用Test中的方法,直接调用Node的方法就可以了,Node中不是没实现方法体么?谢谢。
追答Node是接口或者抽象类,所以没有具体实现方法,虽然value这里是Object的,但是这个value的本质肯定是一个Node的实现类(子类),不然的话,这里强制转换是会出错的。
比如你的Node node = (Node) value;是在如下的方法里
public void showNodeAttr(Object value)
Node node = (Node) value;
但是你调用这个showNodeAttr方法的时候,传入的这个value对象肯定是实现了Node接口的,就像你说的Test类。
比如 Test test = new Test();
showNodeAttr(test);
一般是这么用的。
而且这种调用接口的方式也是java实现多态的主要内容。
以上是关于java中 定义 int... value 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表啥意
the hash for the file is not present in the specified catalog file,是啥意