java - 对象中的变量计数

标签 java jakarta-ee

我有一个简单的问题,我们在哪里需要对象中变量的计数:

class cot{ int I; int j; int k; }

我们需要 cot[] 上每次迭代的变量计数 (3), 我们有 size() 可以用来获取对象数组列表的大小。 但是如何找到对象上每次迭代的变量计数。

我们知道是三个,但是需要动态对象。

最佳答案

您可以使用反射 API。这是一个例子:

import java.lang.reflect.Field;

public class cot{
    int I; int j; int k;
    String str;

    public int CountAllVariables(){
        // get reference to own class
        Class<?> clazz = this.getClass();
        // return amount of all fields
        return clazz.getDeclaredFields().length;
    }
    public int CountAllInteger(){
        int result = 0;
        // get reference to own class
        Class<?> clazz = this.getClass();
        // check all fields
        for ( Field field : clazz.getDeclaredFields() ) {
            // count if it is an int field
            if(int.class.isAssignableFrom(field.getType()))
                result++;
        }
        return result;
    }
}

现在你可以像这样使用它:

public static void main(String[] args){
    cot c = new cot();
    System.out.println( c.CountAllInteger());    // prints 3
    System.out.println( c.CountAllVariables());  // prints 4
}

关于java - 对象中的变量计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33892334/

相关文章:

java - 如何在Java中的xml字符串中包含 "encoding="UTF-8""?

java - 替换 Weblogic 中的事件生成器

java - JasperReportBuilder HTML 行高

tomcat - 让在 SAP Netweaver AS 上开发更舒服?

java - 如何在 JSP 错误处理程序中设置 HTTP 状态代码

java - 为什么我的对象在此类中被垃圾收集

java - 通过java中的另一个线程刷新GUI(swing)

java - Maven 不编译 webapp

sql - 数据库表设计和关系

java - 几个JSP页面和requestURI