gpt4 book ai didi

java - 如何将通用数据类型传递给方法以及如何创建正确的方法来使用它?

转载 作者:行者123 更新时间:2023-12-01 16:36:35 24 4
gpt4 key购买 nike

我想将我的一些方法重构为一种方法,用于根据方法参数将字符串值转换为 int/float。为此,我创建了如下方法:

private <T>Number setNumericValue(String value , T type)
{

value = value.trim();
if(isNumeric(value))
{
if (type instanceof Integer)
return Integer.parseInt(value);
if (type instanceof Float)
return Float.parseFloat(value);

}
return 0;
}

首先我想知道我的方法正确吗?为了调用这个方法我应该如何使用它?我创建了类似的东西,但 java 给我运行时错误

this.temperatureC = setNumericValue(temperatureC, Float);

错误提示:“无法将 Float 转换为 T”

最佳答案

你可以这样做:

private <T extends Number> T setNumericValue(String value , Class<T> type)
{

value = value.trim();
if(isNumeric(value))
{
if (type.isAssignableFrom(Float.class))
return type.cast(Float.valueOf(value));
if (type.isAssignableFrom(Integer.class))
return type.cast(Integer.valueOf(value));
}
return type.getConstructor(String.class).newInstance("0");
}
this.temperatureC = setNumericValue(temperatureC, Float.class);

关于java - 如何将通用数据类型传递给方法以及如何创建正确的方法来使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8375986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com