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实现多态的主要内容。

参考技术A 面向对象的一条基本准则就是接口隔离原则,就是尽量使用接口作为对象的显示类型。使用接口的好处是当你改变Node的实现类的时候,使用它的地方是不需要改变的。

以上是关于java中 定义 int... value 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表啥意

the hash for the file is not present in the specified catalog file,是啥意

java+p+=+new+JPanel(new+GridLayout(5,3,0,15));啥意?

c语言中用户自定义函数的格式是啥?

java中“?”是啥意思

float和int的区别是啥