我正在尝试编写一个代码来获取输入字符串的重复次数。
没有写太多代码,但这是我的代码:
public class MultipleCopiesString {
public static void StringCopy(String inp, Integer num) {
for (int i = 0; i < num; i++){
}
}
}
我在循环(i < num)
中遇到错误,我想知道它为什么会出现以及如何解决它。
Java版本为1.8
并在eclipse
上创建代码。
答案 0 :(得分:7)
您的问题具有不同性质。
我只是在我的eclipse NEON(使用Java8)中放下你的代码。你的代码编译很好;没有出现任何问题。
因为Java足够聪明(到现在为止)了解您想要比较两个 int 值。它隐式地将Integer
num 参数转换为基本类型int
。 (称为auto-boxing resp. un-boxing)。
所以最有可能的答案是:你正在使用eclipse的过时的版本。
含义:eclipse有自己的 Java编译器。因此,在讨论提供给您的编译器错误时,您正在使用的JRE / JDK版本并不重要。因为这些消息来自内置 eclipse Java编译器。
当eclipse Java编译器告诉你Integer无法转换为int时;然后可能的解释是:
长话短说:检查你的日食版本;当它过时时 - 转到eclipse.org,并安装eclipse的最新版本。如果您使用的是最新版本的eclipse,请检查您的工作区/项目设置。
答案 1 :(得分:2)
试试这个:
public class MultipleCopiesString {
public static void stringCopy(String inp, int num) {
for (int i=0; i < num;i++){
}
}
}
或者如果你想使用Integer:
public class MultipleCopiesString {
public static void stringCopy(String inp, Integer num) {
for (int i=0; i < num.intValue();i++){
}
}
}
在Java中,&#39; int&#39; type是一个原语,而&#39; Integer&#39; type是一个对象,意味着你不能像使用简单的int一样使用它。
答案 2 :(得分:2)
2个解决方案:
intValue()
方法,如下所示:num.intValue()