java - 使用静态方法
问题描述
我正在尝试使用静态方法构建矩阵,并使用构建的矩阵返回一个新的构造函数,但是每当我尝试获取矩阵值时,它最终都是空的。
public class KeyTable {
private char[][] key;
final static int rows = 5;
final static int columns = 5;
public KeyTable(char[][] key) {
this.key = key;
}
public static KeyTable buildFromString(String keyPhrase)
{
char[][] alpha = new char[5][5];
char[] alphabet = "abcdefghiklmnopqrstuvwxyz".toCharArray();
int followingAlphabet = 0;
for(int r = 0; r < rows; r++)
{
for(int c = 0; c < columns; c++)
{
if(followingAlphabet <= keyPhrase.length()-1)
alpha[r][c] = keyPhrase.charAt(followingAlphabet);
else
alpha[r][c] = alphabet[followingAlphabet];
followingAlphabet++;
}
}
System.out.println(Arrays.deepToString(alpha));
return new KeyTable(alpha);
}
public char[][] getKeyTable()
{
return this.key;
}
}
主类:
package com.company;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
char[][] alpha = new char[5][5];
KeyTable key = new KeyTable(alpha);
System.out.println(Arrays.deepToString(alpha));
KeyTable.buildFromString("EXAMPLE");
key.getKeyTable();
System.out.println(Arrays.deepToString(alpha));
System.out.println(Arrays.deepToString(key.getKeyTable()));
}
}
解决方案
这是因为你做了两件不同的事情。首先,您使用数组创建了一个 KeyTable 对象。然后你运行了一堆其他随机的东西(buildfromString 方法)。然后你要求它返回一个空键并打印它。我不知道你实际上想要做什么,但它肯定不会打印任何东西,因为你没有将它存储在任何地方。你也让它返回一个没有意义的空对象。像这样的东西:
key=KeyTable.buildFromString("Example");
然后,您可以在主应用程序中返回结果以正确显示信息。我希望这对你有帮助。如果您提供有关您实际尝试做的事情的更多详细信息,我可以提供更多帮助。
推荐阅读
- mongodb - 在 mongodb 上运行 ycsb 时出现未经授权的错误
- c# - .net 核心上的 ClickOnce user.config 更新
- c# - 为什么这个 CSG 库减法函数会留下顶点?
- nswindow - 当以编程方式更改 NSWindow 框架时,NSPopover 位置不正确
- swift - SwiftUI New App生命周期如何连接Facebook SDK
- node.js - 将 Golden-Layout 库导入 Angular 时出错
- vpn - iOS 网络扩展:本地 VPN
- xcode - 使用 @stripe/stripe-react-native 构建反应原生项目时出现未定义符号错误
- python - 使用来自另一个数据帧的代码重新索引数据帧
- python - 如何使用执行 time.sleep(0.5) 每 5 秒拍摄一次快照,同时使用 opencv 同时捕获视频?