带有公共数组的指针

Posted

技术标签:

【中文标题】带有公共数组的指针【英文标题】:Pointer with public array 【发布时间】:2012-11-23 00:05:51 【问题描述】:

事情就是这样——我的 Main 方法只调用 InitGui。在整个类中(基本上是整个文件,我有 InitGui 方法和一些公共静态 gui 对象。其中一个对象实际上是一个数组

public static JButton Keys[] = null; 

我有一个名为 placeKeys 的方法,它获取每个 JButton“键”的位置并将其放置在面板上。当我不使用此方法时,整个代码都可以工作,基本上而不是 for i=0 到任何东西,我只想调用 placeKey(arguments here...) 而不是 每个 jButton 都像这样放置

for i=0 to whatever
Keys[i] = new JButton(jBStringArray[i]);
        Keys[i].setLocation(2 + i*kSize,2+row*50);
        Keys[i].setSize(50, kSize);     
        keyboardPane.add(Keys[i]);            

我把方法写下来了,但是当它尝试访问 Keys[] 时,它在 placeKeys 报告指针错误,这意味着方法的第一行

希望你能理解我

【问题讨论】:

那么真正的代码是什么?不幸的是,循环不正确,所以我不能说这是否是问题所在。另外,请务必明确说明您的异常是什么 - 很可能是 NullPointerException,但我不能 100% 确定。 是的 - 它是 NullPointerException 循环被称为多个不同的参数,有时甚至没有被调用,但只有这 4 行被调用为 1 个值,但我想要一个方法来完成这 4 行...... 【参考方案1】:

在你的 for 循环之前(或者当你声明它时,或者,如果你依赖 null 检查,就在 for 循环之前)你需要使用 Keys = new JButton[whatever+1]; 创建数组。哦,请以小写字母开头变量名 - 这是普遍接受的做法。

【讨论】:

【参考方案2】:
//assuming jBStringArray is already defined here
public static JButton Keys[] = new JButton[jBStringArray.length];

【讨论】:

以上是关于带有公共数组的指针的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer-找到两个叶子节点的最低公共节点,数组的逆序对的个数,第一个公共链表节点

Kmp算法浅谈

为啥我不能使用子类的指针访问基类的公共函数?

LeetCode14-最长公共前缀(水题)

两个链表的第一个公共结点

Mongoose匹配元素或带有$ in语句的空数组