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

标签 java class oop object

我有一个元素数组。我根据每个元素名称创建对象并调用一些 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/

相关文章:

iphone - 对 NSCFTimer 感到困惑...它是什么?

javascript - 两个 Css 文件具有相同的类 - 从特定类中删除类,如何?

c - 无法理解 Axel Schreiner 的书 "OOP in C"中的上下文

ios - 将在整个应用程序或类(class)中使用的颜色

java - Android TextToSpeech 其他库选项

Java 和 SQL - 批处理时出错,必须执行或清除批处理

javascript - JavaFX Web View :sending a String from javafx to js webview

java - Android studio : Unable to detect adb version, 退出值 0xc0000135

python - 组织 Python 类(class)的最佳方式是什么?

Java 设计,如何避免将对象向下传递到层次结构中?!?不可能的?