变量可以用java语言调用方法

时间:2014-02-19 05:45:20

标签: java

我的问题是: java调用方法中的变量可以像这样的例子:

private void test(Rabbit rabbit, byte[] key, byte[] iv, byte[] data) {

    byte[] crypt = rabbit.crypt(data.clone());}

据我所知,data是一个变量,它调用clone()方法。 数据是否可变或没有。

4 个答案:

答案 0 :(得分:1)

在这个例子中,数据可以调用方法clone,因为data是由JVM创建的byte []类的对象,因为它是一个可以调用clone方法的对象。

答案 1 :(得分:0)

这里真正的问题似乎是Java数组对象是否支持.clone()方法。

答案是肯定的。所有Java数组都实现Cloneable,因此.clone()方法将正常工作。请参阅Why clone method is allowed on Array?

请注意,这将是一个“浅层”克隆。这对于原语来说无关紧要,但对于对象来说,它意味着克隆将包含对与原始对象相同的对象的引用,而不是对这些对象的克隆。

答案 2 :(得分:0)

这里data变量的数据类型是一个数组。在Java中,Array被视为Object的类型。因此,您可以使用data.lengthdata.clone()作为有效声明。

length int 对象中的变量(类型为Array), clone() 是方法 Object 类(这是Java中所有类的超类)

答案 3 :(得分:0)

嗯......你看错了符号。简短的回答是,“这取决于。”

在Java中,有两种类型的东西:

  • 原语,只保存原始数值(在char的情况下,通常能够打印出来),
  • 对象,它不仅可以保存值,还可以执行方法调用和访问实例信息。

data实际上是byte[],数组类型的特殊之处在于它们are an Object,而不是类的实例。也就是说,它有一些东西 - clone(),自arrays implement Cloneable以及Object上找到的所有方法,它都是从它继承的。

实质上,您只能在对象上调用方法,而不能在基元上调用方法。