2011-10-21 100 views
0

我有一个名为getStrategy的方法,它在一个类中,它的期望值如图所示。如何将一个对象数组传递给一个方法

public static String getStrategy(Hand[] Hand) 
{ 

} 

这是我的手对象

public class Hand 
{ 
    public char side; 
} 

在我的客户,请告诉我如何可以通过这个方法getStrategy?

我已经试过这

Hand[] HandArray = new Hand[1]; 

HandArray.side = 's'; 

MyClassUtil.getStrategy(HandArray); 

请告诉我,这对正确与否?

+5

'HandArray.side =“S”;':你的编译器已经告诉你,这是错误。请包含任何编译器错误消息与此或任何未来的职位。这些消息通常非常丰富,您需要了解如何理解它们。我们可以帮助。 –

+1

从逻辑上考虑一下 - 数组本身是否有'side'字段? –

+0

你必须在你的手类中声明一个构造函数,所以你可以像'HandArray [0] = new Hand('s');'这个参数来初始化这个变量。 – talnicolas

回答

5

好吧,除了中间线以外(没有命名)。目前你的中间线试图访问一个数组,就像它是一个单一的对象一样。你可能想是这样的:

Hand[] hands = new Hand[1]; 
Hand hand = new Hand(); 
hand.side = 's'; 

hands[0] = hand; 
MyClassUtil.getStrategy(hands); 

使用公共领域我也强烈建议......

+0

@Jon Skeet的最后一句话,他指的是字段的'大小' 。以这种方式使用保护通常更加合适,因为它们可能是同一名称空间的一部分。如果你需要public,创建一个私有变量_size并使用size作为public修饰符,将其定义为private char _size;受保护的字符大小{public get {return _size; },设置{_size = value}}。 – Michael

+0

或者'side'只要不需要重新设置,''side''就可以成为'public final'。这只有在'Hand'构造函数使用'char'作为参数的情况下才有可能。 –

+0

@KublaiKhan:这仍然会暴露一个实现细节(该字段)。我通常只会暴露真正的常量(不可变类型的'public static final'字段)作为变量。 –

相关问题