【发布时间】:2020-07-11 16:36:41
【问题描述】:
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 的方式存在错误,但我将其分配给字节变量
【问题讨论】:
-
错误信息你不明白吗?您无法将
int转换为byte。但是您尝试一下,例如在byte valD = obj.run(valA);中,编译器说“不”。 -
很清楚,但我不知道如何解决它
-
valD应该是int -
我的教授写了主要代码,我无法更改字节 valD = obj.run(valA);
-
那么
run (int valA)应该返回一个byte。请你的教授再给你解释一下
标签: java casting int byte overloading