java - 在 Java 中返回任何类型的方法
问题描述
我正在上 11 年级的计算机科学课程,我正在尝试编写一个可以简化大量代码的文件。现在我正在尝试将输入和输出合并为一种方法;
public static void askln(String text, String type){
System.out.println(text);
if(type.equals("int"))
return getInt();
if(type.equals("char"))
return getChar();
if(type.equals("String"))
return getString();
if(type.equals("double"))
return getDouble();
if(type.equals("float"))
return getFloat();
if(type.equals("long"))
return getLong();
}
getInt()
是一种从用户那里获取整数的方法。我假设人们会理解其他吸气剂的作用。
此代码不起作用,因为 'void' 不会返回任何内容。我想知道是否有一个返回类型可以让我返回任何值。
解决方案
您应该将参数交换为String type
,Class<T> type
并将返回类型交换为T
. 您必须在返回值之前定义一个通用参数,因此签名将如下所示:public static <T> T askln(String text, Class<T> type)
.
为了让您的编译器满意,您可能应该让getXXX()
方法返回 Object 并在返回到T
.
推荐阅读
- javascript - 道具正在变异 VueJs
- java - 在原生 android studio 项目 UI 之上渲染 Unity 内容
- expo - expo AuthSession.startAsync 在第一次成功后不会重定向到通用登录
- python - 未使用状态更改为已发送的 docusign 发件人视图 API 向收件人发送电子邮件
- django - 如何在不使用查询集的情况下使用 Q 在 django DRF 的列表中搜索字段
- sql-server - 如何过滤列不等于值的连接表?
- java - 改造中的布尔值
- reactjs - 从 reducer 分派异步调用后无法获取更新状态
- embedded - 从 STM32CubeMx 生成源代码到 Keil V5.29 时出错
- laravel - 如何在使用 Storage 的 ftp 服务器中使用 Image::make Laravel 解析