gpt4 book ai didi

java - 如何为每个对象使用变量

转载 作者:行者123 更新时间:2023-12-02 04:20:14 24 4
gpt4 key购买 nike

我有一个元素数组。我根据每个元素名称创建对象并调用一些 getter 函数。我正在制作的类的对象实际上是第三方库“Sigar”。

问题是我不想修改这个第三方库,因此我无法为每个对象保留单独的变量值。我需要想出一些方法来为每个对象保留单独的变量。

我希望我的描述能够解释我想要的内容。以下是我的代码

private long lastDiskCheck = 0;
private long lastDiskRead = 0;
private long lastDiskWrite = 0;
private String getDiskUsage() {
try {
List<FileSystem> result = new ArrayList<FileSystem>();
org.hyperic.sigar.FileSystem[] fss = null;
fss = sig.getFileSystemList();
List<Integer> diskUsage = new ArrayList<Integer>();
String ioStat = "";
for (int i = 0; i<fss.length; i++) {
FileSystem fs = fss[i];
FileSystemUsage usage = sig.getFileSystemUsage(fs.getDirName());
if (lastDiskCheck!=0) {
long diff = (nanoTime() - lastDiskCheck)/1000000;
long diffRead = usage.getDiskReadBytes() - lastDiskRead;
long diffWrite = usage.getDiskWriteBytes() - lastDiskWrite;
ioStat = String.format("(%d/%d kB/s)", diffRead/diff, diffWrite / diff);
}
lastDiskRead = usage.getDiskReadBytes();
lastDiskWrite = usage.getDiskWriteBytes();
lastDiskCheck = nanoTime();
diskUsage.add((int)(usage.getUsePercent()*100));
}
return String.format("%d%% %s", (Collections.max(diskUsage)), ioStat);
} catch (SigarException e) {
e.printStackTrace();
}
return "n/a";
}

三个变量

private long lastDiskCheck = 0;
private long lastDiskRead = 0;
private long lastDiskWrite = 0;

更新循环内我不想要的每个对象。如何让每个对象保持不同?

最佳答案

public class MyClass {
private long lastDiskCheck;
private long lastDiskRead;
private long lastDiskWrite;

private YourObject object;

public void setLastDiskCheck(lastDiskCheck){ // setter of lastDiskCheck
this.lastDiskCheck = lastDiskCheck;
}

public long getLastDiskCheck(){ //getter of lastDiskCheck
return lastDiskCheck;
}
}

通过这种方法,您可以将每个对象保留在 MyClass 中,并为每个对象保留不同的值。

关于java - 如何为每个对象使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32864872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com