【问题标题】:Passing a java keyword to a java method将 java 关键字传递给 java 方法
【发布时间】:2021-06-05 06:26:17
【问题描述】:

我们可以像在 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);
    }
}

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

【问题讨论】:

  • 编译器是怎么说的?也许您想详细说明您要达到的目标是什么?
  • 如果你想传递 types 那么也许你应该研究一下java.lang.Class。但是提供您的用例可能是有益的。 Java 不是 Python;你在 Python 中所做的事情可能不会直接转化为 Java,可能会有更好的,或者至少更惯用的方法。
  • 这样做的目的究竟是什么?

标签: java parameters keyword


【解决方案1】:

您可以将其作为 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类型

这是一个字符串类型

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-10-04
      • 2012-02-09
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 2012-08-21
      相关资源
      最近更新 更多