"type mismatch: cannot convert from int to byte"
"type mismatch: cannot convert from int to byte"
Java 的新手,到目前为止一直在苦苦挣扎.. 昨天一整天都在尝试修复此错误,但无济于事...任何帮助将不胜感激。
import java.util.Random;
import java.util.Date;
class Proj06{
public static void main(String[] args){
Random generator = null;
if(args.length != 0){
generator = new Random(Long.parseLong(args[0]));
}else{
generator = new Random(new Date().getTime());
};
//Get and save positive random number of type int.
int valA = Math.abs((generator.nextInt()))/67000 + 1024;
Proj06Runner obj = new Proj06Runner();
String valB = obj.run("certificaton");
String valC = obj.run(1,"name");
byte valD = obj.run(valA);
//Print the original random integer
System.out.println(valA);
//Print the three values returned from the three calls
// to the run method.
System.out.println(valB);
System.out.println(valC);
System.out.println(valD);
//Print the original random integer after casting it
// down to type byte.
//System.out.println((byte)valA);
}//end main
public class Proj06Runner extends Proj06{
public int run(int valA){
return valA;
}
public String run(String valB){
return "this works";
}
public String run(int i, String valC){
return "this also works";
}
//this does not work
public byte run(byte valD){
return valD;
}
}
我无法更改 main 中的任何内容..我知道 valA 是 int 的方式有误,但我将其分配给字节变量
您的 Proj06Runner class 有以下两种方法:
public int run(int valA){
return valA;
}
public byte run(byte valD){
return valD;
}
第一个 int
和 returns int
。第二个需要一个byte
和returns一个byte
。您正在呼叫第一个。我怀疑您希望调用第二个,但这不会起作用,因为 main
方法将 int
作为参数传递。
修复编译器错误的一种方法是将这两种方法“合并”为一个采用 int
和 returns 和 byte
的方法。例如:
public byte run(int valD){
return (byte) valD;
}
Java 的新手,到目前为止一直在苦苦挣扎.. 昨天一整天都在尝试修复此错误,但无济于事...任何帮助将不胜感激。
import java.util.Random;
import java.util.Date;
class Proj06{
public static void main(String[] args){
Random generator = null;
if(args.length != 0){
generator = new Random(Long.parseLong(args[0]));
}else{
generator = new Random(new Date().getTime());
};
//Get and save positive random number of type int.
int valA = Math.abs((generator.nextInt()))/67000 + 1024;
Proj06Runner obj = new Proj06Runner();
String valB = obj.run("certificaton");
String valC = obj.run(1,"name");
byte valD = obj.run(valA);
//Print the original random integer
System.out.println(valA);
//Print the three values returned from the three calls
// to the run method.
System.out.println(valB);
System.out.println(valC);
System.out.println(valD);
//Print the original random integer after casting it
// down to type byte.
//System.out.println((byte)valA);
}//end main
public class Proj06Runner extends Proj06{
public int run(int valA){
return valA;
}
public String run(String valB){
return "this works";
}
public String run(int i, String valC){
return "this also works";
}
//this does not work
public byte run(byte valD){
return valD;
}
}
我无法更改 main 中的任何内容..我知道 valA 是 int 的方式有误,但我将其分配给字节变量
您的 Proj06Runner class 有以下两种方法:
public int run(int valA){
return valA;
}
public byte run(byte valD){
return valD;
}
第一个 int
和 returns int
。第二个需要一个byte
和returns一个byte
。您正在呼叫第一个。我怀疑您希望调用第二个,但这不会起作用,因为 main
方法将 int
作为参数传递。
修复编译器错误的一种方法是将这两种方法“合并”为一个采用 int
和 returns 和 byte
的方法。例如:
public byte run(int valD){
return (byte) valD;
}