我是Java的新手,我正在尝试创建一个返回数字的总和的方法,例如:input = 123->返回6。我正在使用String输入(因为在获得superDigit之前,还需要将String连接n次,所以我需要使用“ String to Integer(不是基本类型)”。
编译时错误:“方法superDigit类型的valueOf(String,int)未定义
我在这里缺少图书馆吗?我需要制作自己的“ valueOf”方法吗?
console.log("Branch Name:" + $(this).closest(".container").find("input.branch_name").attr('id'));
答案 0 :(得分:1)
您在这里有两个选择:
valueOf
的类(使用Integer.valueOf
代替valueOf
)import static java.lang.Integer.valueOf;
。在这种情况下,您可以在代码中使用valueOf
。答案 1 :(得分:0)
代码尝试使用Integer类中的静态方法。编写呼叫有两种方法
Integer包装器类中的valueOf方法是静态的。
handleSubmit(e) {
e.preventDefault();
axios.post('/api/auth/login',this.state).then(response => {
const token_id = response.data.access_token;
localStorage.setItem('token', token_id);
var get_token = localStorage.getItem('token');
if(get_token === null)
{
return <Redirect to='/login' />
}
else
{
this.props.history.push('/hiflyer-dashboard');
}
}).catch((error) =>{
if(error.response)
{
alert('Invalid');
}
})
}
答案 2 :(得分:0)
编译时错误:“方法superDigit类型的valueOf(String,int)未定义
解释:由于方法名valueOf
不受任何限制(例如变量名或类名),并且由于您尚未使用import static
导入,因此编译器期望是您的superDigit
类声明或继承的方法。但是您的类显然没有定义与预期签名匹配的方法。因此...编译错误。
我在这里缺少图书馆吗?我需要制作自己的“ valueOf”方法吗?
很难说。
根据您的使用方式,此valueOf
方法需要从String
和String
生成int
,但不知道如何使用结果应该产生。 (而且您的firstOutput
方法同样是不透明的,尽管我们可以推断出它以某种方式产生了整数。)
鉴于我们不知道此valueOf
应该做什么,我们无法确定是否存在可以导入该名称的现有方法,或者是否需要实现它为自己。我猜测后者。但是,在开始实施该代码之前,我认为您需要查看您编写的代码,并弄清valueOf
和firstOutput
为了达到要求的目的需要做什么。
或者,尝试查看String
和Character
API(javadoc,javadoc)中的方法。查看String::charAt
和Character::digit
。您可以使用这些方法来构建解决方案吗?
答案 3 :(得分:0)
这是一个简单的程序,可以为您提供所需的输出:
public class App
{
public static void main( String[] args ){
String answer = App.superDigit(123);
System.out.println(answer);
}
public static String superDigit(int num) {
String numString = String.valueOf(num);
String[] numArray = numString.split("");
int answer = 0;
for(int x = 0; x < numArray.length; x++) {
answer += Integer.parseInt(numArray[x]);
}
return String.valueOf(answer);
}
}
这是您的输出:
6
让我们讨论这个问题。您只是在调用静态方法“ valueOf”,而不是在使用valueOf方法调用Wrapper类或String类。您必须使用valueOf()方法调用一个类。在这种情况下,您需要在代码中调用Integer.valueOf()。但是,在我向您展示的示例中,我们称为String.valueOf()。但是,简单地调用valueOf()而不调用该方法的类将导致您提到的错误。其次,我们可以简单地在方法中输入一个参数(可以是您要使用的数字),而不用输入字符串。我们可以使用String.valueOf()方法将整数转换为String,然后将其拆分为数组。我们可以创建一个名为answer的Integer,并通过Integer.parseInt()方法将每个索引转换为Integer,从而在整个数组的每次迭代中将其添加到其中。最后,我们可以使用String.valueOf(answer);返回全格式的总和的String表示形式。线。