很长一段时间以来,我一直试图让一段代码工作,但这是不可能的。我拥有的类需要一个我设置为整数的泛型。所以我尝试了以下方法:
public class a<T> //set generics for this function
{
private T A;
protected boolean d;
public a(final T A)
{
this.A = A;
//do calculations
//since constructor cannot return a value, pass to another function.
this.d = retnData(Integer.parseInt(A.toString()) != 100); //convert to an integer, the backwards way.
}
private boolean retnData(boolean test)
{
return test;
}
}
// IN ANOTHER CLASS
transient a<Integer> b;
boolean c = b.d = b.a(25); // throws an erorr: (Int) is not apporpriate for a<Integer>.a
Java 不允许这样做,因为 java 会看到 int != Integer,即使两者都接受相同的数据。由于泛型的工作方式,我无法设置 ab;因为 int 类型的原始性。即使转换为 Integer 也不起作用,因为它仍然会引发“类型错误”
最后,我不得不问一下是否有某种解决方法,或者尝试让它工作是徒劳的?