将 java 关键字传递给 java 方法

问题描述

我们可以像在python中那样将像Stringint这样的java关键字传递给java方法

例如:

package com.mycodes;

public class file1 {
    public static void meth1(funct){
        if (funct == int) {
            System.out.println("It was an int keyword");
        }
    }
   
    public static void main(String[] args) {
        meth1(int);
    }
}

请帮助我,我可以这样做。 提前致谢

解决方法

您可以将其作为 Class 类型传递,并检查您的方法中的类型是什么

public static void printType(Class<?> type){
    String typeName = type.getSimpleName();
    switch (typeName) {
        case "int":
            System.out.println("This is an int type");
            break;
        case "String":
            System.out.println("This is a String type");
            break;
    }
}

public static void main(String[] args) {
    printType(int.class);
    printType(String.class);
}

输出将是:

这是一个int类型

这是一个字符串类型

,

在这种情况下可能会遇到问题,因为 Python 是动态类型的,而 Java 是静态类型的。如果您想在 Java 中使用相同的模式,那么您必须将值存储在字符串/对象数组之类的东西中,然后将它们作为对象或字符串返回。 Java 中的最佳实践是对每个变量使用 getter 和 setter 方法。